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,9 +4,19 @@ import datetime | ||
4 | from .models import Subject, Tag | 4 | from .models import Subject, Tag |
5 | 5 | ||
6 | class CreateSubjectForm(forms.ModelForm): | 6 | class CreateSubjectForm(forms.ModelForm): |
7 | + category_id = None | ||
8 | + | ||
7 | def __init__(self, *args, **kwargs): | 9 | def __init__(self, *args, **kwargs): |
8 | super(CreateSubjectForm, self).__init__(*args, **kwargs) | 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 | if not kwargs['instance'] is None: | 20 | if not kwargs['instance'] is None: |
11 | self.initial['tags'] = ", ".join(self.instance.tags.all().values_list("name", flat = True)) | 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,15 +68,16 @@ class CreateSubjectForm(forms.ModelForm): | ||
58 | 68 | ||
59 | def clean_name(self): | 69 | def clean_name(self): |
60 | name = self.cleaned_data.get('name') | 70 | name = self.cleaned_data.get('name') |
61 | - categoria = self.instance.category | 71 | + |
62 | if self.instance.id: | 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 | else: | 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 | if same_name.count() > 0: | 77 | if same_name.count() > 0: |
67 | self._errors['name'] = [_('There is another subject with this name, try another one.')] | 78 | self._errors['name'] = [_('There is another subject with this name, try another one.')] |
68 | - | ||
69 | - | 79 | + return ValueError |
80 | + | ||
70 | return name | 81 | return name |
71 | 82 | ||
72 | def clean_subscribe_begin(self): | 83 | def clean_subscribe_begin(self): |
@@ -162,14 +173,15 @@ class UpdateSubjectForm(forms.ModelForm): | @@ -162,14 +173,15 @@ class UpdateSubjectForm(forms.ModelForm): | ||
162 | def clean_name(self): | 173 | def clean_name(self): |
163 | name = self.cleaned_data.get('name') | 174 | name = self.cleaned_data.get('name') |
164 | categoria = self.instance.category | 175 | categoria = self.instance.category |
176 | + | ||
165 | if self.instance.id: | 177 | if self.instance.id: |
166 | same_name = Subject.objects.filter(name__unaccent__iexact = name , category = categoria).exclude(id = self.instance.id) | 178 | same_name = Subject.objects.filter(name__unaccent__iexact = name , category = categoria).exclude(id = self.instance.id) |
167 | else: | 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 | if same_name.count() > 0: | 182 | if same_name.count() > 0: |
170 | self._errors['name'] = [_('There is another subject with this name, try another one.')] | 183 | self._errors['name'] = [_('There is another subject with this name, try another one.')] |
171 | 184 | ||
172 | - | ||
173 | return name | 185 | return name |
174 | 186 | ||
175 | # def clean_subscribe_begin(self): | 187 | # def clean_subscribe_begin(self): |
@@ -0,0 +1,20 @@ | @@ -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,7 +20,7 @@ class Tag(models.Model): | ||
20 | 20 | ||
21 | class Subject(models.Model): | 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 | slug = AutoSlugField(_("Slug"),populate_from='name',unique=True) | 24 | slug = AutoSlugField(_("Slug"),populate_from='name',unique=True) |
25 | 25 | ||
26 | description_brief = models.TextField(_("simpler_description"), blank=True) | 26 | description_brief = models.TextField(_("simpler_description"), blank=True) |