diff options
Diffstat (limited to 'archaeological_files')
| -rw-r--r-- | archaeological_files/forms.py | 55 | ||||
| -rw-r--r-- | archaeological_files/models.py | 5 | ||||
| -rw-r--r-- | archaeological_files/tests.py | 14 |
3 files changed, 40 insertions, 34 deletions
diff --git a/archaeological_files/forms.py b/archaeological_files/forms.py index 26b839940..42a645171 100644 --- a/archaeological_files/forms.py +++ b/archaeological_files/forms.py @@ -28,8 +28,9 @@ from django.core import validators from django.utils.translation import ugettext_lazy as _ from django.utils.safestring import mark_safe -from ishtar_common.models import Person, PersonType, Organization, \ - OrganizationType, valid_id, Department +from ishtar_common.models import Person, Organization, \ + valid_id, Department, person_type_pks_lazy, \ + person_type_pk_lazy, organization_type_pks_lazy from archaeological_operations.models import ActType, AdministrativeAct, \ OperationType import models @@ -38,15 +39,9 @@ from ishtar_common.forms import FinalForm, get_now, reverse_lazy, TableSelect, \ from ishtar_common.forms_common import get_town_field from archaeological_operations.forms import AdministrativeActOpeForm, \ AdministrativeActOpeFormSelection, \ - ParcelField, SLICING, HEAD_SCIENTIST, SRA_AGENT, AdministrativeActModifForm + ParcelField, SLICING, AdministrativeActModifForm from ishtar_common import widgets -GENERAL_CONTRACTOR, created = PersonType.objects.get_or_create( - txt_idx='general_contractor') - -GENERAL_CONTRACTOR_ORGA, created = OrganizationType.objects.get_or_create( - txt_idx='general_contractor') - class FileSelect(TableSelect): year = forms.IntegerField(label=_("Year")) @@ -70,21 +65,22 @@ class FileSelect(TableSelect): label=_(u"In charge"), widget=widgets.JQueryAutoComplete( reverse_lazy('autocomplete-person', - args=[SRA_AGENT.pk]), + args=[person_type_pk_lazy('sra_agent')]), associated_model=Person), validators=[valid_id(Person)]) general_contractor = forms.IntegerField( label=_(u"General contractor"), widget=widgets.JQueryAutoComplete( reverse_lazy('autocomplete-person', - args=[GENERAL_CONTRACTOR.pk]), + args=[person_type_pk_lazy('general_contractor')]), associated_model=Person), validators=[valid_id(Person)]) general_contractor__attached_to = forms.IntegerField( label=_(u"Organization of general contractor"), widget=widgets.JQueryAutoComplete( reverse_lazy('autocomplete-organization', - args=[GENERAL_CONTRACTOR_ORGA.pk]), + args=[organization_type_pks_lazy([ + 'general_contractor'])]), associated_model=Organization), validators=[valid_id(Organization)]) history_creator = forms.IntegerField( @@ -205,8 +201,10 @@ class FileFormGeneral(ManageOldType, forms.Form): in_charge = forms.IntegerField( label=_("Person in charge"), widget=widgets.JQueryAutoComplete( - reverse_lazy('autocomplete-person', args=[SRA_AGENT.pk]), - limit={'person_types': [SRA_AGENT.pk]}, + reverse_lazy('autocomplete-person', args=[ + person_type_pks_lazy(['sra_agent'])]), + limit={'person_types': [ + person_type_pk_lazy('sra_agent')]}, associated_model=Person, new=True), validators=[valid_id(Person)]) year = forms.IntegerField(label=_("Year"), @@ -272,12 +270,6 @@ class FileFormGeneralRO(FileFormGeneral): _(u"Another file with this numeric id exists.")) return cleaned_data -RESPONSIBLE_PLANNING_SERVICE, created = PersonType.objects.get_or_create( - txt_idx='responsible_planning_service') - -RESPONSIBLE_PLANNING_SERVICE_ORGA, created = \ - OrganizationType.objects.get_or_create(txt_idx='planning_service') - class FileFormPreventive(ManageOldType, forms.Form): form_label = _(u"Preventive informations") @@ -290,10 +282,10 @@ class FileFormPreventive(ManageOldType, forms.Form): widget=widgets.JQueryAutoComplete( reverse_lazy( 'autocomplete-person', - args=[PersonType.objects.get(txt_idx='general_contractor').pk] + args=[person_type_pks_lazy(['general_contractor'])] ), limit={'person_types': [ - PersonType.objects.get(txt_idx='general_contractor').pk]}, + person_type_pk_lazy('general_contractor')]}, associated_model=Person, new=True), validators=[valid_id(Person)]) responsible_town_planning_service = forms.IntegerField( @@ -302,10 +294,11 @@ class FileFormPreventive(ManageOldType, forms.Form): widget=widgets.JQueryAutoComplete( reverse_lazy( 'autocomplete-person', - args=[RESPONSIBLE_PLANNING_SERVICE.pk] + args=[person_type_pks_lazy(['responsible_planning_service'])] ), limit={'person_types': [ - RESPONSIBLE_PLANNING_SERVICE.pk]}, + person_type_pk_lazy('responsible_planning_service') + ]}, associated_model=Person, new=True), validators=[valid_id(Person)]) permit_type = forms.ChoiceField(label=_(u"Permit type"), required=False, @@ -351,10 +344,9 @@ class FileFormResearch(ManageOldType, forms.Form): widget=widgets.JQueryAutoComplete( reverse_lazy( 'autocomplete-person', - args=["_".join([unicode(HEAD_SCIENTIST.pk), - unicode(SRA_AGENT.pk)])]), - limit={'person_types': [unicode(HEAD_SCIENTIST.pk), - unicode(SRA_AGENT.pk)]}, + args=[person_type_pks_lazy(['head_scientist', 'sra_agent'])]), + limit={'person_types': [person_type_pk_lazy('head_scientist'), + person_type_pk_lazy('sra_agent')]}, associated_model=Person, new=True), label=_(u"Scientist in charge")) requested_operation_type = forms.ChoiceField( @@ -454,8 +446,7 @@ class AdministrativeActFileSelect(TableSelect): widget=widgets.JQueryAutoComplete( reverse_lazy( 'autocomplete-person', - args=[ - PersonType.objects.get(txt_idx='general_contractor').pk]), + args=[person_type_pk_lazy('general_contractor')]), associated_model=Person), validators=[valid_id(Person)]) associated_file__general_contractor__attached_to = forms.IntegerField( @@ -463,7 +454,7 @@ class AdministrativeActFileSelect(TableSelect): widget=widgets.JQueryAutoComplete( reverse_lazy( 'autocomplete-organization', - args=[GENERAL_CONTRACTOR_ORGA.pk]), + args=[organization_type_pks_lazy(['general_contractor'])]), associated_model=Organization), validators=[valid_id(Organization)]) associated_file__numeric_reference = forms.IntegerField( @@ -476,7 +467,7 @@ class AdministrativeActFileSelect(TableSelect): widget=widgets.JQueryAutoComplete( reverse_lazy( 'autocomplete-person', - args=[SRA_AGENT.pk]), + args=[person_type_pk_lazy('sra_agent')]), associated_model=Person), validators=[valid_id(Person)]) associated_file__permit_reference = forms.CharField( diff --git a/archaeological_files/models.py b/archaeological_files/models.py index 623eb1dee..1d8317b31 100644 --- a/archaeological_files/models.py +++ b/archaeological_files/models.py @@ -521,6 +521,7 @@ class File(ClosedItem, BaseHistorizedItem, OwnPerms, ValueGetter, self.auto_external_id = True self.external_id = external_id if updated: + self._cached_label_checked = False self.save() return returned @@ -536,9 +537,9 @@ post_save.connect(cached_label_changed, sender=File) class FileByDepartment(models.Model): - ''' + """ Database view for dashboard - ''' + """ file = models.ForeignKey(File, verbose_name=_(u"File")) department = models.ForeignKey(Department, verbose_name=_(u"Department"), blank=True, null=True) diff --git a/archaeological_files/tests.py b/archaeological_files/tests.py index dfaa1fb09..4a09e1caa 100644 --- a/archaeological_files/tests.py +++ b/archaeological_files/tests.py @@ -86,6 +86,20 @@ class FileTest(TestCase, FileInit): u"{}-{}".format(self.item.year, self.item.numeric_reference)) + def testCachedLabel(self): + lbls = ['No town', self.item.external_id, + self.item.internal_reference] + lbl = settings.JOINT.join(lbls) + self.assertEqual(self.item.cached_label, lbl) + default_town = Town.objects.create(name="Paris", numero_insee='75001') + self.item.towns.add(default_town) + # manually done inside wizards + self.item._cached_label_checked = False + self.item.save() + lbls[0] = "Paris" + lbl = settings.JOINT.join(lbls) + self.assertEqual(self.item.cached_label, lbl) + def testAddAndGetHistorized(self): """ Test correct new version and correct access to history |
