diff --git a/categories/forms.py b/categories/forms.py index 1ccb0c7..c25f26f 100644 --- a/categories/forms.py +++ b/categories/forms.py @@ -9,4 +9,15 @@ class CategoryForm(forms.ModelForm): 'description': forms.Textarea, 'coordinators' : forms.SelectMultiple, } - \ No newline at end of file + + def clean_name(self): + name = self.cleaned_data.get('name') + if self.instance.id: + same_name = Subject.objects.filter(name__unaccent__iexact = name).exclude(id = self.instance.id) + else: + same_name = Subject.objects.filter(name__unaccent__iexact = name) + + if same_name.count() > 0: + self._errors['name'] = [_('There is another category with this name, try another one.')] + + return name diff --git a/subjects/forms.py b/subjects/forms.py index 4f3b1f2..a33f62d 100644 --- a/subjects/forms.py +++ b/subjects/forms.py @@ -71,6 +71,19 @@ class CreateSubjectForm(forms.ModelForm): return ValueError""" return cleaned_data + def clean_name(self): + name = self.cleaned_data.get('name') + if self.instance.id: + same_name = Subject.objects.filter(name__unaccent__iexact = name).exclude(id = self.instance.id) + else: + same_name = Subject.objects.filter(name__unaccent__iexact = name) + + if same_name.count() > 0: + self._errors['name'] = [_('There is another subject with this name, try another one.')] + + + return name + def clean_subscribe_begin(self): subscribe_begin = self.cleaned_data['subscribe_begin'] diff --git a/subjects/views.py b/subjects/views.py index 60659be..7c34ac7 100644 --- a/subjects/views.py +++ b/subjects/views.py @@ -179,7 +179,7 @@ class SubjectCreateView(LoginRequiredMixin, CreateView): user = request.user pk = user.pk if kwargs.get('subject_slug'): - Subject.objects.filter((Q(professor__pk=pk) | Q(category__coordinators__pk=pk)) & Q(slug = kwargs.get('subject_slug'))) + subject = Subject.objects.filter((Q(professor__pk=pk) | Q(category__coordinators__pk=pk)) & Q(slug = kwargs.get('subject_slug'))) if not user.is_staff: if subject.count() == 0: if request.META.get('HTTP_REFERER'): -- libgit2 0.21.2