Commit 6a47c7099c30591455352af34ce39796cd960501

Authored by Felipe Henrique de Almeida Bormann
1 parent 614033fd

modified replicate error on redirect and modified forms to accept names not look…

…ing at accent or letter capitalization
categories/forms.py
... ... @@ -9,4 +9,15 @@ class CategoryForm(forms.ModelForm):
9 9 'description': forms.Textarea,
10 10 'coordinators' : forms.SelectMultiple,
11 11 }
12   -
13 12 \ No newline at end of file
  13 +
  14 + def clean_name(self):
  15 + name = self.cleaned_data.get('name')
  16 + if self.instance.id:
  17 + same_name = Subject.objects.filter(name__unaccent__iexact = name).exclude(id = self.instance.id)
  18 + else:
  19 + same_name = Subject.objects.filter(name__unaccent__iexact = name)
  20 +
  21 + if same_name.count() > 0:
  22 + self._errors['name'] = [_('There is another category with this name, try another one.')]
  23 +
  24 + return name
... ...
subjects/forms.py
... ... @@ -71,6 +71,19 @@ class CreateSubjectForm(forms.ModelForm):
71 71 return ValueError"""
72 72 return cleaned_data
73 73  
  74 + def clean_name(self):
  75 + name = self.cleaned_data.get('name')
  76 + if self.instance.id:
  77 + same_name = Subject.objects.filter(name__unaccent__iexact = name).exclude(id = self.instance.id)
  78 + else:
  79 + same_name = Subject.objects.filter(name__unaccent__iexact = name)
  80 +
  81 + if same_name.count() > 0:
  82 + self._errors['name'] = [_('There is another subject with this name, try another one.')]
  83 +
  84 +
  85 + return name
  86 +
74 87 def clean_subscribe_begin(self):
75 88 subscribe_begin = self.cleaned_data['subscribe_begin']
76 89  
... ...
subjects/views.py
... ... @@ -179,7 +179,7 @@ class SubjectCreateView(LoginRequiredMixin, CreateView):
179 179 user = request.user
180 180 pk = user.pk
181 181 if kwargs.get('subject_slug'):
182   - Subject.objects.filter((Q(professor__pk=pk) | Q(category__coordinators__pk=pk)) & Q(slug = kwargs.get('subject_slug')))
  182 + subject = Subject.objects.filter((Q(professor__pk=pk) | Q(category__coordinators__pk=pk)) & Q(slug = kwargs.get('subject_slug')))
183 183 if not user.is_staff:
184 184 if subject.count() == 0:
185 185 if request.META.get('HTTP_REFERER'):
... ...