Commit d0923db7e26559cadd4dfa15ebd63f88fa51c1fe

Authored by Zambom
1 parent 7c54fb04

Fixing condition that allow only one repository per subject

Showing 1 changed file with 19 additions and 0 deletions   Show diff stats
topics/forms.py
@@ -14,6 +14,25 @@ class TopicForm(forms.ModelForm): @@ -14,6 +14,25 @@ class TopicForm(forms.ModelForm):
14 14
15 self.subject = kwargs['initial'].get('subject', None) 15 self.subject = kwargs['initial'].get('subject', None)
16 16
  17 + if self.instance and self.instance.id:
  18 + if self.instance.repository:
  19 + self.fields['name'].widget.attrs['readonly'] = True
  20 +
  21 +
  22 + def clean_repository(self):
  23 + repository = self.cleaned_data.get('repository', False)
  24 +
  25 + if not self.instance.id:
  26 + if repository:
  27 + has_repo = self.subject.topic_subject.filter(repository = True).exists()
  28 +
  29 + if has_repo:
  30 + self._errors['repository'] = [_('This subject already has a repository')]
  31 +
  32 + return ValueError
  33 +
  34 + return repository
  35 +
17 def clean_name(self): 36 def clean_name(self):
18 name = self.cleaned_data.get('name', '') 37 name = self.cleaned_data.get('name', '')
19 repo = self.cleaned_data.get('repository', False) 38 repo = self.cleaned_data.get('repository', False)