Commit a748a716932777ad01326c31db08cc5922dc52c6
1 parent
94642454
Exists in
master
and in
2 other branches
Adjusting bug of subject same name
Showing
3 changed files
with
40 additions
and
8 deletions
Show diff stats
subjects/forms.py
... | ... | @@ -4,9 +4,19 @@ import datetime |
4 | 4 | from .models import Subject, Tag |
5 | 5 | |
6 | 6 | class CreateSubjectForm(forms.ModelForm): |
7 | + category_id = None | |
8 | + | |
7 | 9 | def __init__(self, *args, **kwargs): |
8 | 10 | super(CreateSubjectForm, self).__init__(*args, **kwargs) |
9 | 11 | |
12 | + if kwargs['initial']: | |
13 | + if kwargs['initial']['category']: | |
14 | + categories = kwargs['initial']['category'] | |
15 | + | |
16 | + if categories.count() > 0: | |
17 | + self.category_id = categories[0].id | |
18 | + | |
19 | + | |
10 | 20 | if not kwargs['instance'] is None: |
11 | 21 | self.initial['tags'] = ", ".join(self.instance.tags.all().values_list("name", flat = True)) |
12 | 22 | |
... | ... | @@ -58,15 +68,16 @@ class CreateSubjectForm(forms.ModelForm): |
58 | 68 | |
59 | 69 | def clean_name(self): |
60 | 70 | name = self.cleaned_data.get('name') |
61 | - categoria = self.instance.category | |
71 | + | |
62 | 72 | if self.instance.id: |
63 | - same_name = Subject.objects.filter(name__unaccent__iexact = name, category = categoria).exclude(id = self.instance.id) | |
73 | + same_name = Subject.objects.filter(name__unaccent__iexact = name, category = self.category_id).exclude(id = self.instance.id) | |
64 | 74 | else: |
65 | - same_name = Subject.objects.filter(name__unaccent__iexact = name, category = categoria) | |
75 | + same_name = Subject.objects.filter(name__unaccent__iexact = name, category = self.category_id) | |
76 | + | |
66 | 77 | if same_name.count() > 0: |
67 | 78 | self._errors['name'] = [_('There is another subject with this name, try another one.')] |
68 | - | |
69 | - | |
79 | + return ValueError | |
80 | + | |
70 | 81 | return name |
71 | 82 | |
72 | 83 | def clean_subscribe_begin(self): |
... | ... | @@ -162,14 +173,15 @@ class UpdateSubjectForm(forms.ModelForm): |
162 | 173 | def clean_name(self): |
163 | 174 | name = self.cleaned_data.get('name') |
164 | 175 | categoria = self.instance.category |
176 | + | |
165 | 177 | if self.instance.id: |
166 | 178 | same_name = Subject.objects.filter(name__unaccent__iexact = name , category = categoria).exclude(id = self.instance.id) |
167 | 179 | else: |
168 | - same_name = Subject.objects.filter(name__unaccent__iexact = name).exclude(category = categoria) | |
180 | + same_name = Subject.objects.filter(name__unaccent__iexact = name, category = categoria) | |
181 | + | |
169 | 182 | if same_name.count() > 0: |
170 | 183 | self._errors['name'] = [_('There is another subject with this name, try another one.')] |
171 | 184 | |
172 | - | |
173 | 185 | return name |
174 | 186 | |
175 | 187 | # def clean_subscribe_begin(self): | ... | ... |
... | ... | @@ -0,0 +1,20 @@ |
1 | +# -*- coding: utf-8 -*- | |
2 | +# Generated by Django 1.10.4 on 2017-08-31 16:27 | |
3 | +from __future__ import unicode_literals | |
4 | + | |
5 | +from django.db import migrations, models | |
6 | + | |
7 | + | |
8 | +class Migration(migrations.Migration): | |
9 | + | |
10 | + dependencies = [ | |
11 | + ('subjects', '0015_auto_20170815_1203'), | |
12 | + ] | |
13 | + | |
14 | + operations = [ | |
15 | + migrations.AlterField( | |
16 | + model_name='subject', | |
17 | + name='name', | |
18 | + field=models.CharField(max_length=200, verbose_name='Name'), | |
19 | + ), | |
20 | + ] | ... | ... |
subjects/models.py
... | ... | @@ -20,7 +20,7 @@ class Tag(models.Model): |
20 | 20 | |
21 | 21 | class Subject(models.Model): |
22 | 22 | |
23 | - name = models.CharField( _("Name"), unique = True,max_length= 200) | |
23 | + name = models.CharField( _("Name"), unique = False, max_length= 200) | |
24 | 24 | slug = AutoSlugField(_("Slug"),populate_from='name',unique=True) |
25 | 25 | |
26 | 26 | description_brief = models.TextField(_("simpler_description"), blank=True) | ... | ... |