diff options
41 files changed, 694 insertions, 721 deletions
diff --git a/archaeological_context_records/admin.py b/archaeological_context_records/admin.py index 9bd2f5c05..abee0a6d0 100644 --- a/archaeological_context_records/admin.py +++ b/archaeological_context_records/admin.py @@ -47,9 +47,9 @@ class AdminContextRecordForm(forms.ModelForm): class Meta: model = models.ContextRecord exclude = [] - point_2d = PointField(label=_(u"Point"), required=False, + point_2d = PointField(label=_("Point"), required=False, widget=OSMWidget) - multi_polygon = MultiPolygonField(label=_(u"Multi polygon"), required=False, + multi_polygon = MultiPolygonField(label=_("Multi polygon"), required=False, widget=OSMWidget) operation = AutoCompleteSelectField('operation') parcel = AutoCompleteSelectField('parcel', required=False) diff --git a/archaeological_context_records/forms.py b/archaeological_context_records/forms.py index 357f5ce13..c4fa6f8fe 100644 --- a/archaeological_context_records/forms.py +++ b/archaeological_context_records/forms.py @@ -49,12 +49,12 @@ from ishtar_common import widgets class OperationFormSelection(CustomForm, forms.Form): form_label = _("Operation") - form_admin_name = _(u"Context record - 010 - Operation choice") + form_admin_name = _("Context record - 010 - Operation choice") form_slug = "contextrecord-010-operationchoice" associated_models = {'operation': Operation} currents = {'operation': Operation} operation = forms.IntegerField( - label=_(u"Operation"), required=False, + label=_("Operation"), required=False, widget=widgets.JQueryAutoComplete( reverse_lazy('autocomplete-operation'), associated_model=Operation), @@ -200,9 +200,12 @@ def get_init_parcel(form, operation, prefix=""): parcels = sorted(parcels, key=sort) for key, gparcels in groupby(parcels, sort): form.fields[prefix + 'parcel'].choices.append( - (" - ".join([k for k in key if k]), - [(parcel.pk, parcel.short_label) for parcel in gparcels]) + ( + " - ".join(k for k in key if k), + [(parcel.pk, parcel.short_label) for parcel in gparcels], + ) ) + if len(form.fields[prefix + 'parcel'].choices) == 1 and \ (prefix + 'town') in form.fields: # only the empty choice is available @@ -218,7 +221,7 @@ def get_init_parcel(form, operation, prefix=""): class RecordFormGeneral(CustomForm, ManageOldType): HEADERS = {} form_label = _("General") - form_admin_name = _(u"Context record - 020 - General") + form_admin_name = _("Context record - 020 - General") form_slug = "contextrecord-020-general" file_upload = True base_models = ["documentation"] @@ -230,58 +233,58 @@ class RecordFormGeneral(CustomForm, ManageOldType): 'excavation_technic': models.ExcavationTechnicType} pk = forms.IntegerField(required=False, widget=forms.HiddenInput) operation_id = forms.IntegerField(widget=forms.HiddenInput) - parcel = forms.ChoiceField(label=_(u"Parcel"), choices=[]) - town = forms.ChoiceField(label=_(u"Town"), choices=[], required=False) + parcel = forms.ChoiceField(label=_("Parcel"), choices=[]) + town = forms.ChoiceField(label=_("Town"), choices=[], required=False) archaeological_site = forms.ChoiceField( label=" ", choices=[], required=False, - help_text=_(u"Only the items associated to the operation can be " - u"selected.") + help_text=_("Only the items associated to the operation can be " + "selected.") ) - label = forms.CharField(label=_(u"ID"), + label = forms.CharField(label=_("ID"), validators=[validators.MaxLengthValidator(200)]) - unit = forms.ChoiceField(label=_(u"Context record type"), required=False, + unit = forms.ChoiceField(label=_("Context record type"), required=False, choices=[]) - description = forms.CharField(label=_(u"Description"), + description = forms.CharField(label=_("Description"), widget=forms.Textarea, required=False) - comment = forms.CharField(label=_(u"General comment"), + comment = forms.CharField(label=_("General comment"), widget=forms.Textarea, required=False) excavation_technic = forms.ChoiceField( - label=_(u"Excavation technique"), choices=[], required=False) + label=_("Excavation technique"), choices=[], required=False) surface = forms.IntegerField( required=False, widget=widgets.AreaWidget, - label=_(u"Total surface (m2)"), + label=_("Total surface (m2)"), validators=[validators.MinValueValidator(0), validators.MaxValueValidator(999999999)]) - length = forms.FloatField(label=_(u"Length (m)"), required=False) - width = forms.FloatField(label=_(u"Width (m)"), required=False) - thickness = forms.FloatField(label=_(u"Thickness (m)"), required=False) - diameter = forms.FloatField(label=_(u"Diameter (m)"), required=False) - depth = forms.FloatField(label=_(u"Depth (m)"), required=False) + length = forms.FloatField(label=_("Length (m)"), required=False) + width = forms.FloatField(label=_("Width (m)"), required=False) + thickness = forms.FloatField(label=_("Thickness (m)"), required=False) + diameter = forms.FloatField(label=_("Diameter (m)"), required=False) + depth = forms.FloatField(label=_("Depth (m)"), required=False) depth_of_appearance = forms.FloatField( - label=_(u"Depth of appearance (m)"), required=False) - opening_date = forms.DateField(label=_(u"Opening date"), + label=_("Depth of appearance (m)"), required=False) + opening_date = forms.DateField(label=_("Opening date"), widget=DatePicker, required=False) - closing_date = forms.DateField(label=_(u"Closing date"), + closing_date = forms.DateField(label=_("Closing date"), widget=DatePicker, required=False) documentation = forms.MultipleChoiceField( label=_("Documentation"), choices=[], required=False, widget=widgets.Select2Multiple) location = forms.CharField( - label=_(u"Location"), widget=forms.Textarea, + label=_("Location"), widget=forms.Textarea, required=False, validators=[validators.MaxLengthValidator(200)]) - HEADERS['x'] = FormHeader(_(u"Coordinates")) - x = forms.FloatField(label=_(u"X"), required=False) - estimated_error_x = forms.FloatField(label=_(u"Estimated error for X"), + HEADERS['x'] = FormHeader(_("Coordinates")) + x = forms.FloatField(label=_("X"), required=False) + estimated_error_x = forms.FloatField(label=_("Estimated error for X"), required=False) - y = forms.FloatField(label=_(u"Y"), required=False) - estimated_error_y = forms.FloatField(label=_(u"Estimated error for Y"), + y = forms.FloatField(label=_("Y"), required=False) + estimated_error_y = forms.FloatField(label=_("Estimated error for Y"), required=False) - z = forms.FloatField(label=_(u"Z"), required=False) - estimated_error_z = forms.FloatField(label=_(u"Estimated error for Z"), + z = forms.FloatField(label=_("Z"), required=False) + estimated_error_z = forms.FloatField(label=_("Estimated error for Z"), required=False) spatial_reference_system = forms.ChoiceField( - label=_(u"Spatial Reference System"), required=False, choices=[]) + label=_("Spatial Reference System"), required=False, choices=[]) TYPES = [ FieldType('unit', models.Unit), @@ -368,12 +371,12 @@ class RecordFormGeneral(CustomForm, ManageOldType): if 'pk' in cleaned_data and cleaned_data['pk']: cr = cr.exclude(pk=int(cleaned_data['pk'])) if cr.count(): - raise forms.ValidationError(_(u"This ID already exists for " - u"this operation.")) + raise forms.ValidationError(_("This ID already exists for " + "this operation.")) if not self.cleaned_data.get('parcel', None) and not \ self.cleaned_data.get('town', None): - raise forms.ValidationError(_(u"You have to choose a town or a " - u"parcel.")) + raise forms.ValidationError(_("You have to choose a town or a " + "parcel.")) return cleaned_data @@ -384,8 +387,8 @@ class DatingForm(ManageOldType, forms.Form): 'quality': models.DatingQuality, 'period': models.Period} period = forms.ChoiceField(label=_("Period"), choices=[]) - start_date = forms.IntegerField(label=_(u"Start date"), required=False) - end_date = forms.IntegerField(label=_(u"End date"), required=False) + start_date = forms.IntegerField(label=_("Start date"), required=False) + end_date = forms.IntegerField(label=_("End date"), required=False) quality = forms.ChoiceField(label=_("Quality"), required=False, choices=[]) dating_type = forms.ChoiceField(label=_("Dating type"), required=False, choices=[]) @@ -402,7 +405,7 @@ class DatingForm(ManageOldType, forms.Form): DatingFormSet = formset_factory(DatingForm, can_delete=True, formset=FormSet) DatingFormSet.form_label = _("Dating") -DatingFormSet.form_admin_name = _(u"Context record - 030 - Dating") +DatingFormSet.form_admin_name = _("Context record - 030 - Dating") DatingFormSet.form_slug = "contextrecord-030-datings" @@ -412,7 +415,7 @@ class RecordRelationsForm(OpeRecordRelationsForm): associated_models = {'right_record': models.ContextRecord, 'relation_type': models.RelationType} right_record = forms.ChoiceField( - label=_(u"Context record"), choices=[], required=False) + label=_("Context record"), choices=[], required=False) def __init__(self, *args, **kwargs): crs = None @@ -428,34 +431,34 @@ class RecordRelationsForm(OpeRecordRelationsForm): RecordRelationsFormSet = formset_factory( RecordRelationsForm, can_delete=True, formset=RecordRelationsFormSetBase) -RecordRelationsFormSet.form_label = _(u"Relations") -RecordRelationsFormSet.form_admin_name = _(u"Context record - 050 - Relations") +RecordRelationsFormSet.form_label = _("Relations") +RecordRelationsFormSet.form_admin_name = _("Context record - 050 - Relations") RecordRelationsFormSet.form_slug = "contextrecord-050-recordrelations" class RecordFormInterpretation(CustomForm, ManageOldType, forms.Form): - form_label = _(u"Interpretation") - form_admin_name = _(u"Context record - 040 - Interpretation") + form_label = _("Interpretation") + form_admin_name = _("Context record - 040 - Interpretation") form_slug = "contextrecord-040-interpretation" associated_models = {'activity': models.ActivityType, 'identification': models.IdentificationType} datings_comment = forms.CharField( - label=_(u"Comments on dating"), required=False, + label=_("Comments on dating"), required=False, widget=forms.Textarea) - filling = forms.CharField(label=_(u"Filling"), + filling = forms.CharField(label=_("Filling"), widget=forms.Textarea, required=False) - interpretation = forms.CharField(label=_(u"Interpretation"), + interpretation = forms.CharField(label=_("Interpretation"), widget=forms.Textarea, required=False) - activity = forms.ChoiceField(label=_(u"Activity"), required=False, + activity = forms.ChoiceField(label=_("Activity"), required=False, choices=[]) identification = forms.ChoiceField(label=_("Identification"), required=False, choices=[]) - taq = forms.IntegerField(label=_(u"TAQ"), required=False) - taq_estimated = forms.IntegerField(label=_(u"Estimated TAQ"), + taq = forms.IntegerField(label=_("TAQ"), required=False) + taq_estimated = forms.IntegerField(label=_("Estimated TAQ"), required=False) - tpq = forms.IntegerField(label=_(u"TPQ"), required=False) - tpq_estimated = forms.IntegerField(label=_(u"Estimated TPQ"), + tpq = forms.IntegerField(label=_("TPQ"), required=False) + tpq_estimated = forms.IntegerField(label=_("Estimated TPQ"), required=False) TYPES = [ @@ -465,27 +468,27 @@ class RecordFormInterpretation(CustomForm, ManageOldType, forms.Form): OperationRecordFormSelection = get_form_selection( - 'OperationRecordFormSelection', _(u"Operation search"), 'operation_id', + 'OperationRecordFormSelection', _("Operation search"), 'operation_id', Operation, OperationSelect, 'get-operation', - _(u"You should select an operation.")) + _("You should select an operation.")) class RecordDeletionForm(FinalForm): confirm_msg = " " - confirm_end_msg = _(u"Would you like to delete this context record?") + confirm_end_msg = _("Would you like to delete this context record?") class QAOperationCR(IshtarForm): - town = forms.ChoiceField(label=_(u"Town"), choices=[]) + town = forms.ChoiceField(label=_("Town"), choices=[]) archaeological_site = forms.ChoiceField( label=" ", choices=[], required=False, - help_text=_(u"Only the items associated to the operation can be " - u"selected.") + help_text=_("Only the items associated to the operation can be " + "selected.") ) - label = forms.CharField(label=_(u"ID"), + label = forms.CharField(label=_("ID"), validators=[validators.MaxLengthValidator(200)]) - parcel = forms.ChoiceField(label=_(u"Parcel"), choices=[], required=False) - unit = forms.ChoiceField(label=_(u"Context record type"), required=False, + parcel = forms.ChoiceField(label=_("Parcel"), choices=[], required=False) + unit = forms.ChoiceField(label=_("Context record type"), required=False, choices=[]) TYPES = [ @@ -517,8 +520,8 @@ class QAOperationCR(IshtarForm): ] if self.profil.parcel_mandatory: self.fields['parcel'].choices += [('', '--')] + [ - (str(parcel.pk), u"{} - {}".format(parcel.short_label, - parcel.town)) + (str(parcel.pk), "{} - {}".format(parcel.short_label, + parcel.town)) for parcel in operation.parcels.all()] def save(self, items): @@ -539,9 +542,9 @@ class QAOperationCR(IshtarForm): class QAContextRecordDuplicateForm(IshtarForm): qa_label = forms.CharField(label=_("ID"), max_length=None, required=True) - qa_parcel = forms.ChoiceField(label=_(u"Parcel"), choices=[]) - qa_town = forms.ChoiceField(label=_(u"Town"), choices=[], required=False) - qa_unit = forms.ChoiceField(label=_(u"Context record type"), required=False, + qa_parcel = forms.ChoiceField(label=_("Parcel"), choices=[]) + qa_town = forms.ChoiceField(label=_("Town"), choices=[], required=False) + qa_unit = forms.ChoiceField(label=_("Context record type"), required=False, choices=[]) TYPES = [ diff --git a/archaeological_context_records/ishtar_menu.py b/archaeological_context_records/ishtar_menu.py index fc02c5eef..a7efd8da4 100644 --- a/archaeological_context_records/ishtar_menu.py +++ b/archaeological_context_records/ishtar_menu.py @@ -26,22 +26,22 @@ from . import models # be carreful: each access_controls must be relevant with check_rights in urls MENU_SECTIONS = [ - (40, SectionItem('record_management', _(u"Context record"), + (40, SectionItem('record_management', _("Context record"), profile_restriction='context_record', css='menu-context-record', - childs=[MenuItem('record_search', _(u"Search"), + childs=[MenuItem('record_search', _("Search"), model=models.ContextRecord, access_controls=['view_contextrecord', 'view_own_contextrecord']), - MenuItem('record_creation', _(u"Creation"), + MenuItem('record_creation', _("Creation"), model=models.ContextRecord, access_controls=['add_contextrecord', 'add_own_contextrecord']), - MenuItem('record_modification', _(u"Modification"), + MenuItem('record_modification', _("Modification"), model=models.ContextRecord, access_controls=['change_contextrecord', 'change_own_contextrecord']), - MenuItem('record_deletion', _(u"Deletion"), + MenuItem('record_deletion', _("Deletion"), model=models.ContextRecord, access_controls=['delete_contextrecord', 'delete_own_contextrecord']), diff --git a/archaeological_context_records/lookups.py b/archaeological_context_records/lookups.py index 8356f5e12..7b7d5b85d 100644 --- a/archaeological_context_records/lookups.py +++ b/archaeological_context_records/lookups.py @@ -22,4 +22,4 @@ class ContextRecordLookup(LookupChannel): return self.model.objects.filter(query).order_by('cached_label')[:20] def format_item_display(self, item): - return u"<span class='ajax-label'>%s</span>" % item.cached_label + return "<span class='ajax-label'>%s</span>" % item.cached_label diff --git a/archaeological_context_records/models.py b/archaeological_context_records/models.py index ff5f937e3..1576088ed 100644 --- a/archaeological_context_records/models.py +++ b/archaeological_context_records/models.py @@ -217,16 +217,12 @@ class Dating(models.Model): return True def context_records_lbl(self): - return " - ".join( - [cr.cached_label for cr in self.context_records.all()] - ) + return " - ".join(cr.cached_label for cr in self.context_records.all()) context_records_lbl.short_description = _("Context record") context_records_lbl.admin_order_field = "context_records__cached_label" def finds_lbl(self): - return " - ".join( - [f.cached_label for f in self.find.all()] - ) + return " - ".join(f.cached_label for f in self.find.all()) finds_lbl.short_description = _("Find") finds_lbl.admin_order_field = "find__cached_label" @@ -514,14 +510,14 @@ class ContextRecord(BulkUpdatedItem, DocumentItem, BaseHistorizedItem, QA_LOCK = QuickAction( url="contextrecord-qa-lock", icon_class="fa fa-lock", - text=_(u"Lock/Unlock"), target="many", + text=_("Lock/Unlock"), target="many", rights=['change_contextrecord', 'change_own_contextrecord'] ) QUICK_ACTIONS = [ QA_LOCK, QuickAction( url="contextrecord-qa-duplicate", icon_class="fa fa-clone", - text=_(u"Duplicate"), target="one", + text=_("Duplicate"), target="one", rights=['change_contextrecord', 'change_own_contextrecord']), ] @@ -861,8 +857,7 @@ class ContextRecord(BulkUpdatedItem, DocumentItem, BaseHistorizedItem, return self.full_label() def _generate_cached_periods(self): - return " & ".join([dating.period.label - for dating in self.datings.all()]) + return " & ".join(dating.period.label for dating in self.datings.all()) def _generate_cached_related_context_records(self): return self.detailed_related_context_records() @@ -888,8 +883,7 @@ class ContextRecord(BulkUpdatedItem, DocumentItem, BaseHistorizedItem, return self.archaeological_site.reference if self.operation.archaeological_sites.count(): return "-".join( - [a.reference for a in self.operation.archaeological_sites.all()] - ) + a.reference for a in self.operation.archaeological_sites.all()) return "" @property diff --git a/archaeological_context_records/views.py b/archaeological_context_records/views.py index 215dd2b4a..2de60dc2c 100644 --- a/archaeological_context_records/views.py +++ b/archaeological_context_records/views.py @@ -99,7 +99,7 @@ get_contextrecordrelationdetail = get_item( record_search_wizard = wizards.RecordSearch.as_view([ ('general-record_search', forms.RecordFormSelection)], - label=_(u"Context record search"), + label=_("Context record search"), url_name='record_search',) record_creation_steps = [ @@ -113,7 +113,7 @@ record_creation_steps = [ record_creation_wizard = wizards.RecordWizard.as_view( record_creation_steps, - label=_(u"New context record"), + label=_("New context record"), url_name='record_creation', ) @@ -129,7 +129,7 @@ record_modification_steps = [ record_modification_wizard = wizards.RecordModifWizard.as_view( record_modification_steps, - label=_(u"Context record modification"), + label=_("Context record modification"), url_name='record_modification', ) @@ -147,7 +147,7 @@ def record_modify(request, pk): record_deletion_wizard = wizards.RecordDeletionWizard.as_view([ ('selec-record_deletion', forms.RecordFormMultiSelection), ('final-record_deletion', forms.RecordDeletionForm)], - label=_(u"Context record deletion"), + label=_("Context record deletion"), url_name='record_deletion',) @@ -216,12 +216,12 @@ class QAOperationContextRecordView(QAItemForm): template_name = 'ishtar/forms/qa_operation_contextrecord.html' model = Operation form_class = forms.QAOperationCR - page_name = _(u"Context record") + page_name = _("Context record") def get_quick_action(self): return QuickAction( url="operation-qa-contextrecord", icon_class="fa fa-plus", - text=_(u"Add context record"), target="one", + text=_("Add context record"), target="one", rights=['add_contextrecord', 'add_own_contextrecord']) def form_valid(self, form): @@ -253,6 +253,6 @@ class QAContextRecordDuplicateFormView(QAItemForm): def get_context_data(self, **kwargs): data = super(QAContextRecordDuplicateFormView, self).get_context_data( **kwargs) - data['action_name'] = _(u"Duplicate") + data['action_name'] = _("Duplicate") data["operation"] = self.items[0].operation return data diff --git a/archaeological_files/forms.py b/archaeological_files/forms.py index 9d2c14691..0108a8375 100644 --- a/archaeological_files/forms.py +++ b/archaeological_files/forms.py @@ -64,34 +64,34 @@ class FileSelect(DocumentItemSelect): internal_reference = forms.CharField(max_length=200, label=_("Other reference")) towns = get_town_field() - parcel = forms.CharField(label=_(u"Parcel")) + parcel = forms.CharField(label=_("Parcel")) if settings.ISHTAR_DPTS: towns__numero_insee__startswith = forms.ChoiceField( - label=_(u"Department"), choices=[]) - name = forms.CharField(label=_(u"File name"), max_length=200) + label=_("Department"), choices=[]) + name = forms.CharField(label=_("File name"), max_length=200) file_type = forms.ChoiceField(label=_("File type"), choices=[]) - end_date = forms.NullBooleanField(label=_(u"Is active?")) + end_date = forms.NullBooleanField(label=_("Is active?")) saisine_type = forms.ChoiceField(label=_("Saisine type"), choices=[]) permit_type = forms.ChoiceField(label=_("Permit type"), choices=[]) permit_reference = forms.CharField(max_length=200, label=_("Permit reference")) - comment = forms.CharField(label=_(u"Comment"), max_length=500) + comment = forms.CharField(label=_("Comment"), max_length=500) in_charge = forms.IntegerField( - label=_(u"In charge"), + label=_("In charge"), widget=widgets.JQueryAutoComplete( reverse_lazy('autocomplete-person', args=[person_type_pk_lazy('sra_agent')]), associated_model=Person), validators=[valid_id(Person)]) general_contractor = forms.IntegerField( - label=_(u"General contractor"), + label=_("General contractor"), widget=widgets.JQueryAutoComplete( reverse_lazy('autocomplete-person', 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"), + label=_("Organization of general contractor"), widget=widgets.JQueryAutoComplete( reverse_lazy('autocomplete-organization', args=[organization_type_pks_lazy([ @@ -99,14 +99,14 @@ class FileSelect(DocumentItemSelect): associated_model=Organization), validators=[valid_id(Organization)]) history_creator = forms.IntegerField( - label=_(u"Created by"), + label=_("Created by"), widget=widgets.JQueryAutoComplete( reverse_lazy('autocomplete-person', args=['0', 'user']), associated_model=Person), validators=[valid_id(Person)]) history_modifier = forms.IntegerField( - label=_(u"Modified by"), + label=_("Modified by"), widget=widgets.JQueryAutoComplete( reverse_lazy('autocomplete-person', args=['0', 'user']), @@ -155,8 +155,8 @@ class FileFormMultiSelection(LockForm, MultiSearchForm): validators=[valid_ids(models.File)]) -DATE_SOURCE = (('creation', _(u"Creation date")), - ("reception", _(u"Reception date"))) +DATE_SOURCE = (('creation', _("Creation date")), + ("reception", _("Reception date"))) class DashboardForm(IshtarForm): @@ -171,9 +171,9 @@ class DashboardForm(IshtarForm): saisine_type = forms.ChoiceField( label=_("Saisine type"), choices=[], required=False) after = forms.DateField( - label=_(u"Date after"), widget=DatePicker, required=False) + label=_("Date after"), widget=DatePicker, required=False) before = forms.DateField( - label=_(u"Date before"), widget=DatePicker, required=False) + label=_("Date before"), widget=DatePicker, required=False) def __init__(self, *args, **kwargs): if 'prefix' not in kwargs: @@ -230,9 +230,9 @@ class FileFormGeneral(ManageOldType): numeric_reference = forms.IntegerField( label=_("Numeric reference"), widget=forms.HiddenInput, required=False) internal_reference = forms.CharField( - label=_(u"Other reference"), max_length=60, required=False) - name = forms.CharField(label=_(u"Name"), required=False, max_length=100) - creation_date = forms.DateField(label=_(u"Creation date"), + label=_("Other reference"), max_length=60, required=False) + name = forms.CharField(label=_("Name"), required=False, max_length=100) + creation_date = forms.DateField(label=_("Creation date"), initial=get_now, widget=DatePicker) file_type = forms.ChoiceField(label=_("File type"), choices=[]) related_file = forms.IntegerField( @@ -240,11 +240,11 @@ class FileFormGeneral(ManageOldType): widget=widgets.JQueryAutoComplete(reverse_lazy('autocomplete-file'), associated_model=models.File), validators=[valid_id(models.File)]) - comment = forms.CharField(label=_(u"Comment"), widget=forms.Textarea, + comment = forms.CharField(label=_("Comment"), widget=forms.Textarea, required=False) total_surface = forms.FloatField( required=False, widget=widgets.AreaWidget, - label=_(u"Total surface (m2)"), + label=_("Total surface (m2)"), validators=[validators.MinValueValidator(0), validators.MaxValueValidator(999999999)]) address = forms.CharField(label=_("Main address"), widget=forms.Textarea) @@ -262,16 +262,16 @@ class FileFormGeneral(ManageOldType): .exclude(internal_reference='').order_by('-pk') if q.count() and 'internal_reference' in self.fields: lbl = self.fields['internal_reference'].label - lbl += _(u"<br/>(last recorded: %s)") % ( + lbl += _("<br/>(last recorded: %s)") % ( q.all()[0].internal_reference) self.fields['internal_reference'].label = mark_safe(lbl) class FileFormGeneralRO(FileFormGeneral): year = forms.IntegerField( - label=_(u"Year"), widget=forms.TextInput(attrs={'readonly': True})) + label=_("Year"), widget=forms.TextInput(attrs={'readonly': True})) numeric_reference = forms.IntegerField( - label=_(u"Numeric reference"), widget=forms.TextInput()) + label=_("Numeric reference"), widget=forms.TextInput()) id = forms.IntegerField(' ', widget=forms.HiddenInput, required=False) def clean(self): @@ -284,13 +284,13 @@ class FileFormGeneralRO(FileFormGeneral): .exclude(pk=pk) if numeric_reference and q.count(): raise forms.ValidationError( - _(u"Another file with this numeric id exists.")) + _("Another file with this numeric id exists.")) return cleaned_data ParcelFormset = formset_factory(ParcelForm, can_delete=True, formset=ParcelFormSet) -ParcelFormset.form_label = _(u"Parcels") +ParcelFormset.form_label = _("Parcels") ParcelFormset.form_admin_name = _("Archaeological file - 020 - Parcel") ParcelFormset.form_slug = "file-020-parcels" @@ -325,20 +325,20 @@ class FileFormPreventive(ManageOldType, forms.Form): ]}, associated_model=Person, new=True), validators=[valid_id(Person)]) - permit_type = forms.ChoiceField(label=_(u"Permit type"), required=False, + permit_type = forms.ChoiceField(label=_("Permit type"), required=False, choices=[]) permit_reference = forms.CharField( - label=_(u"Permit reference"), required=False, + label=_("Permit reference"), required=False, validators=[validators.MaxLengthValidator(60)]) total_developed_surface = forms.FloatField( - widget=widgets.AreaWidget, label=_(u"Total developed surface (m2)"), + widget=widgets.AreaWidget, label=_("Total developed surface (m2)"), required=False, validators=[validators.MinValueValidator(0), validators.MaxValueValidator(999999999)]) if settings.COUNTRY == 'fr': - saisine_type = forms.ChoiceField(label=_(u"Saisine type"), + saisine_type = forms.ChoiceField(label=_("Saisine type"), choices=[]) reception_date = forms.DateField( - label=_(u"Reception date"), initial=get_now, widget=DatePicker) + label=_("Reception date"), initial=get_now, widget=DatePicker) def __init__(self, *args, **kwargs): super(FileFormPreventive, self).__init__(*args, **kwargs) @@ -393,19 +393,19 @@ class FileFormResearch(CustomForm, ManageOldType, forms.Form): validators=[valid_id(Organization)], required=False, ) if settings.COUNTRY == 'fr': - cira_advised = forms.NullBooleanField(label=u"Passage en CIRA", + cira_advised = forms.NullBooleanField(label="Passage en CIRA", required=False) research_comment = forms.CharField( - label=_(u"Comment"), widget=forms.Textarea, required=False) + label=_("Comment"), widget=forms.Textarea, required=False) if settings.COUNTRY == 'fr': mh_register = forms.NullBooleanField( - label=u"Sur Monument Historique classé", required=False) + label="Sur Monument Historique classé", required=False) mh_listing = forms.NullBooleanField( - label=u"Sur Monument Historique inscrit", required=False) + label="Sur Monument Historique inscrit", required=False) classified_area = forms.NullBooleanField( - label=_(u"Classified area"), required=False) + label=_("Classified area"), required=False) protected_area = forms.NullBooleanField( - label=_(u"Protected area"), required=False) + label=_("Protected area"), required=False) def __init__(self, *args, **kwargs): super(FileFormResearch, self).__init__(*args, **kwargs) @@ -420,34 +420,34 @@ class FileFormResearch(CustomForm, ManageOldType, forms.Form): class FinalFileClosingForm(FinalForm): confirm_msg = " " - confirm_end_msg = _(u"Would you like to close this archaeological file?") + confirm_end_msg = _("Would you like to close this archaeological file?") class FinalFileDeleteForm(FinalForm): confirm_msg = " " - confirm_end_msg = _(u"Would you like to delete this archaeological file ?") + confirm_end_msg = _("Would you like to delete this archaeological file ?") class AdministrativeActFileModifySelect(TableSelect): _model = AdministrativeAct search_vector = forms.CharField( - label=_(u"Full text search"), widget=widgets.SearchWidget( + label=_("Full text search"), widget=widgets.SearchWidget( 'archaeological-operations', 'administrativeact', 'administrativeactfile', )) year = forms.IntegerField(label=_("Year")) index = forms.IntegerField(label=_("Index")) if settings.COUNTRY == 'fr': - ref_sra = forms.CharField(label=u"Référence SRA", + ref_sra = forms.CharField(label="Référence SRA", max_length=15) act_type = forms.ChoiceField(label=_("Act type"), choices=[]) - act_object = forms.CharField(label=_(u"Object (full text search)"), + act_object = forms.CharField(label=_("Object (full text search)"), max_length=300) operation__towns = get_town_field() if settings.ISHTAR_DPTS: operation__towns__numero_insee__startswith = forms.ChoiceField( - label=_(u"Department"), choices=[]) + label=_("Department"), choices=[]) def __init__(self, *args, **kwargs): super(AdministrativeActFileModifySelect, self).__init__(*args, @@ -467,33 +467,33 @@ class AdministrativeActFileSelect(TableSelect): _model = AdministrativeAct search_vector = forms.CharField( - label=_(u"Full text search"), widget=widgets.SearchWidget( + label=_("Full text search"), widget=widgets.SearchWidget( 'archaeological-operations', 'administrativeact', 'administrativeactfile', )) year = forms.IntegerField(label=_("Year")) index = forms.IntegerField(label=_("Index")) if settings.COUNTRY == 'fr': - ref_sra = forms.CharField(label=u"Autre référence", + ref_sra = forms.CharField(label="Autre référence", max_length=15) act_type = forms.ChoiceField(label=_("Act type"), choices=[]) - indexed = forms.NullBooleanField(label=_(u"Indexed?")) + indexed = forms.NullBooleanField(label=_("Indexed?")) associated_file__towns = get_town_field() - parcel = forms.CharField(label=_(u"Parcel")) + parcel = forms.CharField(label=_("Parcel")) if settings.ISHTAR_DPTS: associated_file__towns__numero_insee__startswith = forms.ChoiceField( - label=_(u"Department"), choices=[]) - act_object = forms.CharField(label=_(u"Object"), + label=_("Department"), choices=[]) + act_object = forms.CharField(label=_("Object"), max_length=300) signature_date_before = forms.DateField( - label=_(u"Signature date before"), widget=DatePicker) + label=_("Signature date before"), widget=DatePicker) signature_date_after = forms.DateField( - label=_(u"Signature date after"), widget=DatePicker) + label=_("Signature date after"), widget=DatePicker) associated_file__name = forms.CharField( - label=_(u"File name"), max_length=200) + label=_("File name"), max_length=200) associated_file__general_contractor = forms.IntegerField( - label=_(u"General contractor"), + label=_("General contractor"), widget=widgets.JQueryAutoComplete( reverse_lazy( 'autocomplete-person', @@ -501,7 +501,7 @@ class AdministrativeActFileSelect(TableSelect): associated_model=Person), validators=[valid_id(Person)]) associated_file__general_contractor__attached_to = forms.IntegerField( - label=_(u"Organization of general contractor"), + label=_("Organization of general contractor"), widget=widgets.JQueryAutoComplete( reverse_lazy( 'autocomplete-organization', @@ -514,7 +514,7 @@ class AdministrativeActFileSelect(TableSelect): associated_file__internal_reference = forms.CharField( max_length=200, label=_("File other reference")) associated_file__in_charge = forms.IntegerField( - label=_(u"File in charge"), + label=_("File in charge"), widget=widgets.JQueryAutoComplete( reverse_lazy( 'autocomplete-person', @@ -524,7 +524,7 @@ class AdministrativeActFileSelect(TableSelect): associated_file__permit_reference = forms.CharField( max_length=200, label=_("File permit reference")) history_creator = forms.IntegerField( - label=_(u"Created by"), + label=_("Created by"), widget=widgets.JQueryAutoComplete( reverse_lazy( 'autocomplete-person', @@ -532,7 +532,7 @@ class AdministrativeActFileSelect(TableSelect): associated_model=Person), validators=[valid_id(Person)]) history_modifier = forms.IntegerField( - label=_(u"Modified by"), + label=_("Modified by"), widget=widgets.JQueryAutoComplete( reverse_lazy('autocomplete-person', args=['0', 'user']), @@ -576,9 +576,9 @@ class AdministrativeActFileModifyFormSelection( class AdministrativeActFileForm(AdministrativeActForm): - form_admin_name = _(u"Archaeological file - Administrative act - General") + form_admin_name = _("Archaeological file - Administrative act - General") form_slug = "file-adminact-general" - act_type = forms.ChoiceField(label=_(u"Act type"), choices=[]) + act_type = forms.ChoiceField(label=_("Act type"), choices=[]) TYPES = [ FieldType('act_type', ActType, diff --git a/archaeological_files/ishtar_menu.py b/archaeological_files/ishtar_menu.py index 889d27287..7c5f870a6 100644 --- a/archaeological_files/ishtar_menu.py +++ b/archaeological_files/ishtar_menu.py @@ -30,47 +30,47 @@ from . import models MENU_SECTIONS = [ (20, SectionItem( - 'file_management', _(u"Archaeological file"), + 'file_management', _("Archaeological file"), profile_restriction='files', css='menu-file', childs=[ MenuItem( - 'file_search', _(u"Search"), + 'file_search', _("Search"), model=models.File, access_controls=['view_file', 'view_own_file']), MenuItem( - 'file_creation', _(u"Creation"), + 'file_creation', _("Creation"), model=models.File, access_controls=['add_file', 'add_own_file']), MenuItem( - 'file_modification', _(u"Modification"), + 'file_modification', _("Modification"), model=models.File, access_controls=['change_file', 'change_own_file']), MenuItem( - 'file_closing', _(u"Closing"), + 'file_closing', _("Closing"), model=models.File, access_controls=['close_file']), MenuItem( - 'file_deletion', _(u"Deletion"), + 'file_deletion', _("Deletion"), model=models.File, access_controls=['delete_file', 'delete_own_file']), SectionItem( - 'admin_act_files', _(u"Administrative act"), + 'admin_act_files', _("Administrative act"), childs=[ MenuItem('file_administrativeactfil_search', - _(u"Search"), + _("Search"), model=AdministrativeAct, access_controls=['change_administrativeact']), MenuItem('file_administrativeactfil', - _(u"Creation"), + _("Creation"), model=AdministrativeAct, access_controls=['change_administrativeact']), MenuItem('file_administrativeactfil_modification', - _(u"Modification"), + _("Modification"), model=AdministrativeAct, access_controls=['change_administrativeact']), MenuItem('file_administrativeactfil_deletion', - _(u"Deletion"), + _("Deletion"), model=AdministrativeAct, access_controls=['change_administrativeact']), ],)]),), @@ -78,29 +78,29 @@ MENU_SECTIONS = [ """ (100, SectionItem( - 'dashboard', _(u"Dashboard"), + 'dashboard', _("Dashboard"), profile_restriction='files', css='menu-file', - childs=[MenuItem('dashboard_main', _(u"General informations"), + childs=[MenuItem('dashboard_main', _("General informations"), model=models.File, access_controls=['change_file', 'change_own_file']), - MenuItem('dashboard_file', _(u"Archaeological files"), + MenuItem('dashboard_file', _("Archaeological files"), model=models.File, access_controls=['change_file', 'change_own_file']), ]), ), - SectionItem('dashboard', _(u"Dashboard"), + SectionItem('dashboard', _("Dashboard"), childs=[ - MenuItem('dashboard_main', _(u"General informations"), + MenuItem('dashboard_main', _("General informations"), model=models.File, access_controls=['change_file', 'change_own_file']), - MenuItem('dashboard_file', _(u"Archaeological files"), + MenuItem('dashboard_file', _("Archaeological files"), model=models.File, access_controls=['change_file', 'change_own_file']), - #MenuItem('dashboard_treatment', _(u"Treatments"), + #MenuItem('dashboard_treatment', _("Treatments"), # model=models.Treatment, # access_controls=['change_treatment',]), - #MenuItem('dashboard_warehouse', _(u"Warehouses"), + #MenuItem('dashboard_warehouse', _("Warehouses"), # model=models.Warehouse, # access_controls=['change_warehouse',]), ]), diff --git a/archaeological_files/lookups.py b/archaeological_files/lookups.py index dab3fb38c..a96974c9f 100644 --- a/archaeological_files/lookups.py +++ b/archaeological_files/lookups.py @@ -20,4 +20,4 @@ class FileLookup(LookupChannel): return self.model.objects.filter(query).order_by('cached_label')[:20] def format_item_display(self, item): - return u"<span class='ajax-label'>%s</span>" % item.cached_label + return "<span class='ajax-label'>%s</span>" % item.cached_label diff --git a/archaeological_files/models.py b/archaeological_files/models.py index bef7d53a1..5b2c89e16 100644 --- a/archaeological_files/models.py +++ b/archaeological_files/models.py @@ -47,8 +47,8 @@ from archaeological_operations.models import get_values_town_related, \ class FileType(GeneralType): class Meta: - verbose_name = _(u"Archaeological file type") - verbose_name_plural = _(u"Archaeological file types") + verbose_name = _("Archaeological file type") + verbose_name_plural = _("Archaeological file types") ordering = ('label',) @classmethod @@ -67,8 +67,8 @@ post_delete.connect(post_save_cache, sender=FileType) class PermitType(GeneralType): class Meta: - verbose_name = _(u"Permit type") - verbose_name_plural = _(u"Permit types") + verbose_name = _("Permit type") + verbose_name_plural = _("Permit types") ordering = ('label',) @@ -164,7 +164,7 @@ class File(ClosedItem, DocumentItem, BaseHistorizedItem, CompleteIdentifierItem, ] COL_LABELS = { - 'towns_label': _(u"Towns"), + 'towns_label': _("Towns"), } REVERSED_BOOL_FIELDS = [ @@ -237,7 +237,7 @@ class File(ClosedItem, DocumentItem, BaseHistorizedItem, CompleteIdentifierItem, ), 'general_contractor__attached_to': SearchAltName( pgettext_lazy("key for text search", - u"general-contractor-organization"), + "general-contractor-organization"), 'general_contractor__attached_to__cached_label__iexact' ), } @@ -283,7 +283,7 @@ class File(ClosedItem, DocumentItem, BaseHistorizedItem, CompleteIdentifierItem, verbose_name=_("Responsible for planning service"), on_delete=models.SET_NULL,) # service instructeur - personne raw_town_planning_service = models.CharField( - _(u"Planning service (raw)"), max_length=200, + _("Planning service (raw)"), max_length=200, blank=True, null=True) planning_service = models.ForeignKey( Organization, @@ -320,14 +320,14 @@ class File(ClosedItem, DocumentItem, BaseHistorizedItem, CompleteIdentifierItem, saisine_type = models.ForeignKey( SaisineType, blank=True, null=True, on_delete=models.SET_NULL, - verbose_name=u"Type de saisine") + verbose_name="Type de saisine") instruction_deadline = models.DateField(_(u'Instruction deadline'), blank=True, null=True) - total_surface = models.FloatField(_(u"Total surface (m2)"), + total_surface = models.FloatField(_("Total surface (m2)"), blank=True, null=True) total_developed_surface = models.FloatField( - _(u"Total developed surface (m2)"), blank=True, null=True) - locality = models.CharField(_(u"Locality"), + _("Total developed surface (m2)"), blank=True, null=True) + locality = models.CharField(_("Locality"), max_length=100, null=True, blank=True) address = models.TextField(_("Main address"), blank=True, default="") postal_code = models.CharField(_("Main address - postal code"), @@ -335,34 +335,34 @@ class File(ClosedItem, DocumentItem, BaseHistorizedItem, CompleteIdentifierItem, comment = models.TextField(_("Comment"), blank=True, default="") # research archaeology --> departments = models.ManyToManyField( - Department, verbose_name=_(u"Departments"), blank=True) + Department, verbose_name=_("Departments"), blank=True) requested_operation_type = models.ForeignKey( OperationType, related_name='+', on_delete=models.SET_NULL, - null=True, blank=True, verbose_name=_(u"Requested operation type")) + null=True, blank=True, verbose_name=_("Requested operation type")) organization = models.ForeignKey( - Organization, blank=True, null=True, verbose_name=_(u"Organization"), + Organization, blank=True, null=True, verbose_name=_("Organization"), related_name='files', on_delete=models.SET_NULL) scientist = models.ForeignKey( Person, blank=True, null=True, related_name='scientist', - on_delete=models.SET_NULL, verbose_name=_(u"Scientist in charge")) + on_delete=models.SET_NULL, verbose_name=_("Scientist in charge")) research_comment = models.TextField( _("Research archaeology comment"), blank=True, default="") classified_area = models.NullBooleanField( - _(u"Classified area"), blank=True, null=True) + _("Classified area"), blank=True, null=True) protected_area = models.NullBooleanField( - _(u"Protected area"), blank=True, null=True) + _("Protected area"), blank=True, null=True) if settings.COUNTRY == 'fr': cira_advised = models.NullBooleanField( - u"Passage en CIRA", blank=True, null=True) + "Passage en CIRA", blank=True, null=True) mh_register = models.NullBooleanField( - u"Sur Monument Historique classé", blank=True, null=True) + "Sur Monument Historique classé", blank=True, null=True) mh_listing = models.NullBooleanField( - u"Sur Monument Historique inscrit", blank=True, null=True) + "Sur Monument Historique inscrit", blank=True, null=True) # <-- research archaeology documents = models.ManyToManyField( - Document, related_name="files", verbose_name=_(u"Documents"), + Document, related_name="files", verbose_name=_("Documents"), blank=True) cached_label = models.TextField( @@ -380,15 +380,15 @@ class File(ClosedItem, DocumentItem, BaseHistorizedItem, CompleteIdentifierItem, ] class Meta: - verbose_name = _(u"Archaeological file") - verbose_name_plural = _(u"Archaeological files") + verbose_name = _("Archaeological file") + verbose_name_plural = _("Archaeological files") permissions = ( - ("view_file", u"Can view all Archaeological files"), - ("view_own_file", u"Can view own Archaeological file"), - ("add_own_file", u"Can add own Archaeological file"), - ("change_own_file", u"Can change own Archaeological file"), - ("delete_own_file", u"Can delete own Archaeological file"), - ("close_file", u"Can close File"), + ("view_file", "Can view all Archaeological files"), + ("view_own_file", "Can view own Archaeological file"), + ("add_own_file", "Can add own Archaeological file"), + ("change_own_file", "Can change own Archaeological file"), + ("delete_own_file", "Can delete own Archaeological file"), + ("close_file", "Can close File"), ) ordering = ('cached_label',) indexes = [ @@ -398,22 +398,22 @@ class File(ClosedItem, DocumentItem, BaseHistorizedItem, CompleteIdentifierItem, @classmethod def _get_department_code(cls, value): if not settings.ISHTAR_DPTS: - return u"" + return "" for k, v in settings.ISHTAR_DPTS: if v.lower() == value: return k - return u"" + return "" def _get_base_image_path(self): - return u"{}/{}".format(self.SLUG, self.reference or self.short_label) + return "{}/{}".format(self.SLUG, self.reference or self.short_label) @property def short_class_name(self): - return _(u"FILE") + return _("FILE") @property def full_internal_ref(self): - return u"{}{}".format(settings.ISHTAR_FILE_PREFIX or '', + return "{}{}".format(settings.ISHTAR_FILE_PREFIX or '', self.external_id or '') @property @@ -455,7 +455,7 @@ class File(ClosedItem, DocumentItem, BaseHistorizedItem, CompleteIdentifierItem, address = '' if self.general_contractor: if self.general_contractor.name: - address = u" ".join([ + address = " ".join([ str(getattr(self.general_contractor, key)) for key in ('title', 'surname', 'name') if getattr(self.general_contractor, key)]) @@ -472,12 +472,12 @@ class File(ClosedItem, DocumentItem, BaseHistorizedItem, CompleteIdentifierItem, if self.general_contractor and self.general_contractor.address: address = self.general_contractor.address if self.general_contractor.address_complement: - address += u" " + self.general_contractor.address_complement + address += " " + self.general_contractor.address_complement if not address and self.corporation_general_contractor and\ self.corporation_general_contractor.address: address = self.corporation_general_contractor.address if self.corporation_general_contractor.address_complement: - address += u" " + \ + address += " " + \ self.corporation_general_contractor.address_complement return address @@ -485,13 +485,13 @@ class File(ClosedItem, DocumentItem, BaseHistorizedItem, CompleteIdentifierItem, def general_contractor_address_3(self): address = '' if self.general_contractor and self.general_contractor.postal_code: - address = u" ".join([ + address = " ".join([ getattr(self.general_contractor, key) for key in ('postal_code', 'town') if getattr(self.general_contractor, key)]) if not address and self.corporation_general_contractor and\ self.corporation_general_contractor.address: - address = u" ".join([ + address = " ".join([ getattr(self.corporation_general_contractor, key) for key in ('postal_code', 'town') if getattr(self.corporation_general_contractor, key)]) @@ -576,7 +576,7 @@ class File(ClosedItem, DocumentItem, BaseHistorizedItem, CompleteIdentifierItem, @property def reference(self): - return self.external_id or u"" + return self.external_id or "" def _generate_cached_label(self): items = [self.get_town_label(), self.reference] @@ -595,7 +595,7 @@ class File(ClosedItem, DocumentItem, BaseHistorizedItem, CompleteIdentifierItem, elif self.towns.count() == 1: lbl = self.towns.all()[0].name elif self.towns.count() == 0: - lbl = str(_(u"No town")) + lbl = str(_("No town")) return lbl def get_department(self): @@ -632,7 +632,7 @@ class File(ClosedItem, DocumentItem, BaseHistorizedItem, CompleteIdentifierItem, @property def town_list(self): - return u", ".join([str(tw) for tw in self.towns.all()]) + return ", ".join([str(tw) for tw in self.towns.all()]) def total_surface_ha(self): if self.total_surface: @@ -789,8 +789,8 @@ class FileByDepartment(models.Model): DELETE_SQL = """ DROP VIEW IF EXISTS file_department; """ - file = models.ForeignKey(File, verbose_name=_(u"File")) - department = models.ForeignKey(Department, verbose_name=_(u"Department"), + file = models.ForeignKey(File, verbose_name=_("File")) + department = models.ForeignKey(Department, verbose_name=_("Department"), on_delete=models.DO_NOTHING, blank=True, null=True) diff --git a/archaeological_files/views.py b/archaeological_files/views.py index f94de1cb1..dcd1387f9 100644 --- a/archaeological_files/views.py +++ b/archaeological_files/views.py @@ -110,7 +110,7 @@ def dashboard_file(request, *args, **kwargs): file_search_wizard = wizards.FileSearch.as_view( [('general-file_search', forms.FileFormSelection)], - label=_(u"File search"), url_name='file_search',) + label=_("File search"), url_name='file_search',) file_creation_wizard = wizards.FileWizard.as_view( [('general-file_creation', forms.FileFormGeneral), @@ -119,7 +119,7 @@ file_creation_wizard = wizards.FileWizard.as_view( ('preventive-file_creation', forms.FileFormPreventive), ('research-file_creation', forms.FileFormResearch), ('final-file_creation', forms.FinalForm)], - label=_(u"New file"), + label=_("New file"), condition_dict={ 'preventive-file_creation': is_preventive('general-file_creation', models.FileType, @@ -138,7 +138,7 @@ file_modification_wizard = wizards.FileModificationWizard.as_view( ('preventive-file_modification', forms.FileFormPreventive), ('research-file_modification', forms.FileFormResearch), ('final-file_modification', forms.FinalForm)], - label=_(u"File modification"), + label=_("File modification"), condition_dict={ 'preventive-file_modification': is_preventive('general-file_modification', @@ -164,12 +164,12 @@ file_closing_wizard = wizards.FileClosingWizard.as_view( [('selec-file_closing', forms.FileFormSelection), ('date-file_closing', ClosingDateFormSelection), ('final-file_closing', forms.FinalFileClosingForm)], - label=_(u"File closing"), url_name='file_closing',) + label=_("File closing"), url_name='file_closing',) file_deletion_wizard = wizards.FileDeletionWizard.as_view( [('selec-file_deletion', forms.FileFormMultiSelection), ('final-file_deletion', forms.FinalFileDeleteForm)], - label=_(u"File deletion"), + label=_("File deletion"), url_name='file_deletion',) @@ -186,7 +186,7 @@ file_administrativeactfile_search_wizard = \ SearchWizard.as_view([ ('selec-file_administrativeactfile_search', forms.AdministrativeActFileFormSelection)], - label=_(u"File: search administrative act"), + label=_("File: search administrative act"), url_name='file_administrativeactfile_search',) file_administrativeactfile_wizard = \ @@ -195,7 +195,7 @@ file_administrativeactfile_wizard = \ ('administrativeact-file_administrativeactfile', forms.AdministrativeActFileForm), ('final-file_administrativeactfile', forms.FinalForm)], - label=_(u"File: new administrative act"), + label=_("File: new administrative act"), url_name='file_administrativeactfile',) file_administrativeactfile_modification_wizard = \ @@ -205,7 +205,7 @@ file_administrativeactfile_modification_wizard = \ ('administrativeact-file_administrativeactfile_modification', forms.AdministrativeActFileModifForm), ('final-file_administrativeactfile_modification', forms.FinalForm)], - label=_(u"File: administrative act modification"), + label=_("File: administrative act modification"), url_name='file_administrativeactfile_modification',) @@ -231,7 +231,7 @@ file_administrativeactfile_deletion_wizard = \ forms.AdministrativeActFileFormSelection), ('final-file_administrativeactfile_deletion', FinalAdministrativeActDeleteForm)], - label=_(u"File: administrative act deletion"), + label=_("File: administrative act deletion"), url_name='file_administrativeactfile_deletion',) diff --git a/archaeological_files/wizards.py b/archaeological_files/wizards.py index c208dc097..c259effbe 100644 --- a/archaeological_files/wizards.py +++ b/archaeological_files/wizards.py @@ -145,7 +145,7 @@ class FileAdministrativeActWizard(OperationAdministrativeActWizard): file_id = self.session_get_value(form_key, "pk") try: return ( - (_(u"Archaeological file"), + (_("Archaeological file"), str(models.File.objects.get(pk=file_id))),) except models.File.DoesNotExist: return @@ -155,7 +155,7 @@ class FileAdministrativeActWizard(OperationAdministrativeActWizard): admin = AdministrativeAct.objects.get(pk=admin_id) if not admin.associated_file: return - return ((_(u"Archaeological file"), + return ((_("Archaeological file"), str(admin.associated_file)),) except AdministrativeAct.DoesNotExist: return diff --git a/archaeological_files_pdl/forms.py b/archaeological_files_pdl/forms.py index d4cc749a4..54cc51dde 100644 --- a/archaeological_files_pdl/forms.py +++ b/archaeological_files_pdl/forms.py @@ -43,7 +43,7 @@ from bootstrap_datepicker.widgets import DatePicker class FileFormGeneral(CustomForm, ManageOldType): form_label = _("General") - form_admin_name = _(u"Archaeological file - 010 - General") + form_admin_name = _("Archaeological file - 010 - General") form_slug = "file-010-general" associated_models = {'file_type': models.FileType} file_type = forms.ChoiceField(label=_("File type"), choices=[]) @@ -69,14 +69,14 @@ class FileFormGeneral(CustomForm, ManageOldType): class FileFormPreventiveType(CustomForm, ManageOldType, forms.Form): - form_label = u"Saisine" - form_admin_name = _(u"Archaeological file - 013 - Preventive - Saisine") + form_label = "Saisine" + form_admin_name = _("Archaeological file - 013 - Preventive - Saisine") form_slug = "file-013-preventivesaisine" associated_models = {'saisine_type': models.SaisineType, 'permit_type': models.PermitType} - permit_type = forms.ChoiceField(label=_(u"Permit type"), required=False, + permit_type = forms.ChoiceField(label=_("Permit type"), required=False, choices=[]) - saisine_type = forms.ChoiceField(label=_(u"Saisine type"), + saisine_type = forms.ChoiceField(label=_("Saisine type"), choices=[]) TYPES = [ FieldType('saisine_type', models.SaisineType), @@ -90,14 +90,14 @@ class FileFormPreventiveType(CustomForm, ManageOldType, forms.Form): class FileFormPlanning(CustomForm, ManageOldType): - form_label = _(u"Planning") - form_admin_name = _(u"Archaeological file - 017 - Preventive - Planning") + form_label = _("Planning") + form_admin_name = _("Archaeological file - 017 - Preventive - Planning") form_slug = "file-017-preventiveplanning" base_models = ['town', 'department'] associated_models = {'town': Town, 'department': Department} HEADERS = {} HEADERS['town'] = FormHeader(_("Localisation")) - name = forms.CharField(label=_(u"Planning name"), required=False, + name = forms.CharField(label=_("Planning name"), required=False, max_length=100) town = widgets.Select2MultipleField( model=Town, label=_("Towns"), required=False, remote=True) @@ -105,48 +105,48 @@ class FileFormPlanning(CustomForm, ManageOldType): model=Department, label=_("Departments"), required=False, help_text=_("Only relevant when no town is provided.") ) - locality = forms.CharField(label=_(u"Locality"), max_length=100, + locality = forms.CharField(label=_("Locality"), max_length=100, required=False) address = forms.CharField( - label=_(u"Address (number/street)"), - widget=forms.Textarea(attrs={"placeholder": _(u"Number/street")}), + label=_("Address (number/street)"), + widget=forms.Textarea(attrs={"placeholder": _("Number/street")}), required=False) - postal_code = forms.CharField(label=_(u"Postal code"), max_length=10, + postal_code = forms.CharField(label=_("Postal code"), max_length=10, required=False) HEADERS['total_surface'] = FormHeader(_("Surfaces")) total_surface = forms.FloatField( required=False, widget=widgets.AreaWidget, - label=_(u"Total surface (m2)"), + label=_("Total surface (m2)"), validators=[validators.MinValueValidator(0), validators.MaxValueValidator(999999999)]) total_developed_surface = forms.FloatField( widget=widgets.AreaWidget, - label=_(u"Total developed surface (m2)"), + label=_("Total developed surface (m2)"), required=False, validators=[validators.MinValueValidator(0), validators.MaxValueValidator(999999999)]) class FileFormResearchAddress(CustomForm, forms.Form): - form_label = _(u"Address") - form_admin_name = _(u"Archaeological file - 015 - Research - Address") + form_label = _("Address") + form_admin_name = _("Archaeological file - 015 - Research - Address") form_slug = "file-015-researchplanning" base_models = ['town', 'department'] associated_models = {'town': Town, 'department': Department} - name = forms.CharField(label=_(u"Project name"), required=False, + name = forms.CharField(label=_("Project name"), required=False, max_length=100) town = widgets.Select2MultipleField( model=Town, label=_("Towns"), required=False, remote=True) department = widgets.Select2MultipleField( model=Department, label=_("Departments"), required=False) - locality = forms.CharField(label=_(u"Locality"), max_length=100, + locality = forms.CharField(label=_("Locality"), max_length=100, required=False) address = forms.CharField( - label=_(u"Address (number/street)"), - widget=forms.Textarea(attrs={"placeholder": _(u"Number/street")}), + label=_("Address (number/street)"), + widget=forms.Textarea(attrs={"placeholder": _("Number/street")}), required=False) - postal_code = forms.CharField(label=_(u"Postal code"), max_length=10, + postal_code = forms.CharField(label=_("Postal code"), max_length=10, required=False) @@ -247,7 +247,7 @@ class PersonOrgaForm(forms.Form): class FileFormGeneralContractor(CustomForm, ManageOldType): - form_label = _(u"General contractor") + form_label = _("General contractor") form_admin_name = _("Archaeological file - 030 - General contractor") form_slug = "file-030-generalcontractor" extra_form_modals = ["person", "organization"] @@ -404,7 +404,7 @@ class FileFormInstruction(CustomForm, IshtarForm): widget=widgets.JQueryAutoComplete(reverse_lazy('autocomplete-file'), associated_model=models.File), validators=[valid_id(models.File)]) - comment = forms.CharField(label=_(u"Comment"), widget=forms.Textarea, + comment = forms.CharField(label=_("Comment"), widget=forms.Textarea, required=False) instruction_deadline = forms.DateField(widget=DatePicker, required=False) diff --git a/archaeological_files_pdl/views.py b/archaeological_files_pdl/views.py index 0f5d0171d..a7d0dee02 100644 --- a/archaeological_files_pdl/views.py +++ b/archaeological_files_pdl/views.py @@ -46,7 +46,7 @@ file_creation_wizard = FileWizard.as_view([ ('research-file_creation', ref_forms.FileFormResearch), ('instruction-file_creation', forms.FileFormInstruction), ('final-file_creation', ref_forms.FinalForm)], - label=_(u"New file"), + label=_("New file"), condition_dict={ 'preventivetype-file_creation': file_creation_wizard_is_preventive, 'preventiveplanning-file_creation': file_creation_wizard_is_preventive, @@ -73,7 +73,7 @@ file_modification_wizard = FileModificationWizard.as_view([ ('research-file_modification', ref_forms.FileFormResearch), ('instruction-file_modification', forms.FileFormInstructionEdit), ('final-file_modification', ref_forms.FinalForm)], - label=_(u"File modification"), + label=_("File modification"), condition_dict={ 'preventivetype-file_modification': file_modification_wizard_is_preventive, 'preventiveplanning-file_modification': diff --git a/archaeological_operations/admin.py b/archaeological_operations/admin.py index 312f2c3d3..0650d4711 100644 --- a/archaeological_operations/admin.py +++ b/archaeological_operations/admin.py @@ -96,9 +96,9 @@ class AdminOperationForm(forms.ModelForm): class Meta: model = models.Operation exclude = [] - point = PointField(label=_(u"Point"), required=False, + point = PointField(label=_("Point"), required=False, widget=OSMWidget) - multi_polygon = MultiPolygonField(label=_(u"Multi polygon"), required=False, + multi_polygon = MultiPolygonField(label=_("Multi polygon"), required=False, widget=OSMWidget) in_charge = AutoCompleteSelectField('person', required=False) scientist = AutoCompleteSelectField('person', required=False) diff --git a/archaeological_operations/forms.py b/archaeological_operations/forms.py index 3714b2e6a..b54a081d8 100644 --- a/archaeological_operations/forms.py +++ b/archaeological_operations/forms.py @@ -60,7 +60,7 @@ class ParcelField(forms.MultiValueField): super(ParcelField, self).__init__(*args, **kwargs) def compress(self, data_list): - return u"-".join(data_list) + return "-".join(data_list) class ParcelForm(IshtarForm): @@ -73,12 +73,12 @@ class ParcelForm(IshtarForm): year = forms.IntegerField(label=_("Year"), required=False, validators=[validators.MinValueValidator(1000), validators.MaxValueValidator(2100)]) - section = forms.CharField(label=_(u"Section"), required=False, + section = forms.CharField(label=_("Section"), required=False, validators=[validators.MaxLengthValidator(4)]) parcel_number = forms.CharField( - label=_(u"Parcel number"), required=False, + label=_("Parcel number"), required=False, validators=[validators.MaxLengthValidator(6)]) - public_domain = forms.BooleanField(label=_(u"Public domain"), + public_domain = forms.BooleanField(label=_("Public domain"), initial=False, required=False) def __init__(self, *args, **kwargs): @@ -122,7 +122,7 @@ class ParcelForm(IshtarForm): not self.cleaned_data.get('public_domain'): return {} if not self.cleaned_data.get('town'): - raise forms.ValidationError(_(u"Town section is required.")) + raise forms.ValidationError(_("Town section is required.")) return self.cleaned_data @classmethod @@ -193,10 +193,10 @@ class ParcelForm(IshtarForm): res += " ; " res += town + u' : ' if c_section: - res += u" / " + res += " / " c_section = section res += section + u' ' - res += u", ".join(parcel_numbers) + res += ", ".join(parcel_numbers) if year: res += " (%s)" % str(year) return res @@ -206,10 +206,10 @@ class ParcelSelectionForm(IshtarForm): _town = forms.ChoiceField(label=_("Town"), choices=(), required=False, validators=[valid_id(models.Town)]) _parcel_selection = forms.CharField( - label=_(u"Full text input"), + label=_("Full text input"), widget=SelectParcelWidget(attrs={'class': 'parcel-select'}), - help_text=_(u"example: \"2013: XD:1 to 13,24,33 to 39, YD:24\" or " - u"\"AB:24,AC:42\""), + help_text=_("example: \"2013: XD:1 to 13,24,33 to 39, YD:24\" or " + "\"AB:24,AC:42\""), max_length=100, required=False) @@ -373,10 +373,10 @@ class RecordRelationsForm(ManageOldType): current_related_model = models.Operation associated_models = {'right_record': models.Operation, 'relation_type': models.RelationType} - relation_type = forms.ChoiceField(label=_(u"Relation type"), + relation_type = forms.ChoiceField(label=_("Relation type"), choices=[], required=False) right_record = forms.IntegerField( - label=_(u"Operation"), + label=_("Operation"), widget=widgets.JQueryAutoComplete( reverse_lazy('autocomplete-operation'), associated_model=models.Operation), @@ -398,8 +398,8 @@ class RecordRelationsForm(ManageOldType): if not nc or nc[-1][0] != rel: nc.append([rel, []]) nc[-1][1].append(ope) - rendered = u";".join( - [u"{}{} {}".format(rel, _(u":"), u" ; ".join(opes)) + rendered = ";".join( + ["{}{} {}".format(rel, _(":"), " ; ".join(opes)) for rel, opes in nc]) return rendered @@ -407,16 +407,16 @@ class RecordRelationsForm(ManageOldType): cleaned_data = self.cleaned_data if (cleaned_data.get('relation_type', None) and not cleaned_data.get('right_record', None)): - raise forms.ValidationError(_(u"You should select an operation.")) + raise forms.ValidationError(_("You should select an operation.")) if (not cleaned_data.get('relation_type', None) and cleaned_data.get('right_record', None)): raise forms.ValidationError( - _(u"You should select a relation type.")) + _("You should select a relation type.")) if self.left_record and \ str(cleaned_data.get('right_record', None)) == str( self.left_record.pk): raise forms.ValidationError( - _(u"An operation cannot be related to herself.")) + _("An operation cannot be related to herself.")) return cleaned_data @classmethod @@ -448,7 +448,7 @@ class RecordRelationsForm(ManageOldType): nc[-1][1].append(ope) result.append((_("Current relations"), cls._format_lst(current))) if deleted: - result.append((_("Deleted relations"), u" ; ".join(deleted))) + result.append((_("Deleted relations"), " ; ".join(deleted))) return result @@ -472,37 +472,37 @@ class RecordRelationsFormSetBase(FormSet): RecordRelationsFormSet = formset_factory( RecordRelationsForm, can_delete=True, formset=RecordRelationsFormSetBase) -RecordRelationsFormSet.form_label = _(u"Relations") -RecordRelationsFormSet.form_admin_name = _(u"Operation - 080 - Relations") +RecordRelationsFormSet.form_label = _("Relations") +RecordRelationsFormSet.form_admin_name = _("Operation - 080 - Relations") RecordRelationsFormSet.form_slug = "operation-080-relations" class OperationSelect(DocumentItemSelect): _model = models.Operation - form_admin_name = _(u"Operation - 001 - Search") + form_admin_name = _("Operation - 001 - Search") form_slug = "operation-001-search" search_vector = forms.CharField( - label=_(u"Full text search"), widget=widgets.SearchWidget( + label=_("Full text search"), widget=widgets.SearchWidget( 'archaeological-operations', 'operation')) year = forms.IntegerField(label=_("Year")) - operation_code = forms.IntegerField(label=_(u"Numeric reference")) + operation_code = forms.IntegerField(label=_("Numeric reference")) code_patriarche = forms.CharField( max_length=500, widget=OAWidget, label="Code PATRIARCHE") drassm_code = forms.CharField( - label=_(u"DRASSM code"), required=False, max_length=100) + label=_("DRASSM code"), required=False, max_length=100) towns = get_town_field() towns__areas = forms.ChoiceField(label=_("Areas"), choices=[]) - parcel = forms.CharField(label=_(u"Parcel")) + parcel = forms.CharField(label=_("Parcel")) if settings.ISHTAR_DPTS: towns__numero_insee__startswith = forms.ChoiceField( - label=_(u"Department"), choices=[]) - common_name = forms.CharField(label=_(u"Name"), max_length=30) - address = forms.CharField(label=_(u"Address / Locality"), max_length=100) - operation_type = forms.ChoiceField(label=_(u"Operation type"), choices=[]) - end_date = forms.NullBooleanField(label=_(u"Is open?")) + label=_("Department"), choices=[]) + common_name = forms.CharField(label=_("Name"), max_length=30) + address = forms.CharField(label=_("Address / Locality"), max_length=100) + operation_type = forms.ChoiceField(label=_("Operation type"), choices=[]) + end_date = forms.NullBooleanField(label=_("Is open?")) in_charge = forms.IntegerField( widget=widgets.JQueryAutoComplete( reverse_lazy( @@ -510,14 +510,14 @@ class OperationSelect(DocumentItemSelect): args=[person_type_pks_lazy(['sra_agent'])] ), associated_model=Person), - label=_(u"In charge")) + label=_("In charge")) scientist = forms.IntegerField( widget=widgets.JQueryAutoComplete( reverse_lazy( 'autocomplete-person-permissive', args=[person_type_pks_lazy(['sra_agent', 'head_scientist'])]), associated_model=Person), - label=_(u"Scientist in charge")) + label=_("Scientist in charge")) operator = forms.IntegerField( label=_("Operator"), widget=widgets.JQueryAutoComplete( @@ -526,24 +526,24 @@ class OperationSelect(DocumentItemSelect): args=[organization_type_pks_lazy(['operator'])]), associated_model=Organization), validators=[valid_id(Organization)]) - # operator_reference = forms.CharField(label=_(u"Operator reference"), + # operator_reference = forms.CharField(label=_("Operator reference"), # max_length=20) - remains = forms.ChoiceField(label=_(u"Remains"), choices=[]) - periods = forms.ChoiceField(label=_(u"Periods"), choices=[]) - start_before = DateField(label=_(u"Started before")) - start_after = DateField(label=_(u"Started after")) - end_before = DateField(label=_(u"Ended before")) - end_after = DateField(label=_(u"Ended after")) + remains = forms.ChoiceField(label=_("Remains"), choices=[]) + periods = forms.ChoiceField(label=_("Periods"), choices=[]) + start_before = DateField(label=_("Started before")) + start_after = DateField(label=_("Started after")) + end_before = DateField(label=_("Ended before")) + end_after = DateField(label=_("Ended after")) relation_types = forms.ChoiceField( - label=_(u"Search within relations"), choices=[]) - comment = forms.CharField(label=_(u"Comment"), max_length=500) - abstract = forms.CharField(label=_(u"Abstract (full text search)")) + label=_("Search within relations"), choices=[]) + comment = forms.CharField(label=_("Comment"), max_length=500) + abstract = forms.CharField(label=_("Abstract (full text search)")) scientific_documentation_comment = forms.CharField( - label=_(u"Comment about scientific documentation")) - record_quality_type = forms.ChoiceField(label=_(u"Record quality")) - report_processing = forms.ChoiceField(label=_(u"Report processing"), + label=_("Comment about scientific documentation")) + record_quality_type = forms.ChoiceField(label=_("Record quality")) + report_processing = forms.ChoiceField(label=_("Report processing"), choices=[]) - virtual_operation = forms.NullBooleanField(label=_(u"Virtual operation")) + virtual_operation = forms.NullBooleanField(label=_("Virtual operation")) archaeological_sites = forms.IntegerField( label=_("Archaeological site"), widget=widgets.JQueryAutoComplete( @@ -551,31 +551,31 @@ class OperationSelect(DocumentItemSelect): associated_model=models.ArchaeologicalSite), validators=[valid_id(models.ArchaeologicalSite)]) history_creator = forms.IntegerField( - label=_(u"Created by"), + label=_("Created by"), widget=widgets.JQueryAutoComplete( reverse_lazy('autocomplete-person', args=['0', 'user']), associated_model=Person), validators=[valid_id(Person)]) history_modifier = forms.IntegerField( - label=_(u"Modified by"), + label=_("Modified by"), widget=widgets.JQueryAutoComplete( reverse_lazy('autocomplete-person', args=['0', 'user']), associated_model=Person), validators=[valid_id(Person)]) documentation_received = forms.NullBooleanField( - label=_(u"Documentation received")) + label=_("Documentation received")) documentation_deadline_before = DateField( - label=_(u"Documentation deadline before")) + label=_("Documentation deadline before")) documentation_deadline_after = DateField( - label=_(u"Documentation deadline after")) + label=_("Documentation deadline after")) has_finds = forms.NullBooleanField(label=_("Has finds")) finds_received = forms.NullBooleanField( - label=_(u"Finds received")) + label=_("Finds received")) finds_deadline_before = DateField( - label=_(u"Finds deadline before")) + label=_("Finds deadline before")) finds_deadline_after = DateField( - label=_(u"Finds deadline after")) + label=_("Finds deadline after")) TYPES = [ FieldType('operation_type', models.OperationType), @@ -608,7 +608,7 @@ class OperationSelect(DocumentItemSelect): class OperationFormSelection(LockForm, CustomFormSearch): SEARCH_AND_SELECT = True - form_label = _(u"Operation search") + form_label = _("Operation search") associated_models = {'pk': models.Operation} extra_form_modals = ["person", "organization"] currents = {'pk': models.Operation} @@ -622,7 +622,7 @@ class OperationFormSelection(LockForm, CustomFormSearch): class OperationFormMultiSelection(LockForm, MultiSearchForm): - form_label = _(u"Operation search") + form_label = _("Operation search") associated_models = {'pks': models.Operation} extra_form_modals = ["person", "organization"] pk_key = 'pks' @@ -642,7 +642,7 @@ class OperationCodeInput(forms.TextInput): name, value = args base_name = '-'.join(name.split('-')[:-1]) rendered = super(OperationCodeInput, self).render(*args, **kwargs) - js = u"""\n <script type="text/javascript"><!--// + js = """\n <script type="text/javascript"><!--// function initialyse_operation_code () { // if the form is in creation mode if(!$("#id_%(base_name)s-pk").val()){ @@ -663,33 +663,33 @@ class OperationCodeInput(forms.TextInput): class OperationFormFileChoice(IshtarForm): - form_label = _(u"Associated file") + form_label = _("Associated file") associated_models = {'associated_file': File, } currents = {'associated_file': File} associated_file = forms.IntegerField( - label=_(u"Archaeological file"), + label=_("Archaeological file"), widget=widgets.JQueryAutoComplete( reverse_lazy('autocomplete-file'), associated_model=File), validators=[valid_id(File)], required=False) class OperationFormAbstract(CustomForm, IshtarForm): - form_label = _(u"Abstract") - form_admin_name = _(u"Operation - 090 - Abstract") + form_label = _("Abstract") + form_admin_name = _("Operation - 090 - Abstract") form_slug = "operation-090-abstract" abstract = forms.CharField( - label=_(u"Abstract"), + label=_("Abstract"), widget=forms.Textarea(attrs={'class': 'xlarge'}), required=False) -SLICING = (("month", _(u"months")), ('year', _(u"years")),) +SLICING = (("month", _("months")), ('year', _("years")),) -DATE_SOURCE = (('creation', _(u"Creation date")), - ("start", _(u"Start of field work"))) +DATE_SOURCE = (('creation', _("Creation date")), + ("start", _("Start of field work"))) PREVENTIVE_RESARCH = (('all', _('All')), - ('preventive', _(u"Preventive")), - ('research', _(u"Research")),) + ('preventive', _("Preventive")), + ('research', _("Research")),) class DashboardForm(IshtarForm): @@ -706,8 +706,8 @@ class DashboardForm(IshtarForm): required=False) operator = forms.ChoiceField(label=_("Operator"), choices=[], required=False) - after = DateField(label=_(u"Date after"), required=False) - before = DateField(label=_(u"Date before"), required=False) + after = DateField(label=_("Date after"), required=False) + before = DateField(label=_("Date before"), required=False) with_report = forms.BooleanField(label=_("With reports"), required=False) with_finds = forms.BooleanField(label=_("With finds"), required=False) @@ -762,8 +762,8 @@ class DashboardForm(IshtarForm): class OperationFormGeneral(CustomForm, ManageOldType): HEADERS = {} - form_label = _(u"General") - form_admin_name = _(u"Operation - 010 - General") + form_label = _("General") + form_admin_name = _("Operation - 010 - General") form_slug = "operation-010-general" extra_form_modals = ["person", "organization"] @@ -779,19 +779,19 @@ class OperationFormGeneral(CustomForm, ManageOldType): 'spatial_reference_system': SpatialReferenceSystem, } pk = forms.IntegerField(required=False, widget=forms.HiddenInput) - code_patriarche = forms.CharField(label=u"Code PATRIARCHE", + code_patriarche = forms.CharField(label="Code PATRIARCHE", max_length=500, widget=OAWidget, required=False) drassm_code = forms.CharField( - label=_(u"DRASSM code"), required=False, max_length=100) - operation_type = forms.ChoiceField(label=_(u"Operation type"), + label=_("DRASSM code"), required=False, max_length=100) + operation_type = forms.ChoiceField(label=_("Operation type"), choices=[]) - common_name = forms.CharField(label=_(u"Generic name"), required=False, + common_name = forms.CharField(label=_("Generic name"), required=False, max_length=500, widget=forms.Textarea) - address = forms.CharField(label=_(u"Address / Locality"), required=False, + address = forms.CharField(label=_("Address / Locality"), required=False, max_length=500, widget=forms.Textarea) - year = forms.IntegerField(label=_(u"Year"), + year = forms.IntegerField(label=_("Year"), initial=lambda: datetime.datetime.now().year, validators=[validators.MinValueValidator(1000), validators.MaxValueValidator(2100)]) @@ -820,7 +820,7 @@ class OperationFormGeneral(CustomForm, ManageOldType): tips=lazy(get_operator_label), associated_model=Organization, new=True), validators=[valid_id(Organization)], required=False) - operator_reference = forms.CharField(label=_(u"Operator reference"), + operator_reference = forms.CharField(label=_("Operator reference"), required=False, max_length=20) in_charge = forms.IntegerField( label=_("In charge"), @@ -838,12 +838,12 @@ class OperationFormGeneral(CustomForm, ManageOldType): label=_("Total surface (m2)"), validators=[validators.MinValueValidator(0), validators.MaxValueValidator(999999999)]) - start_date = DateField(label=_(u"Start date"), required=False) - excavation_end_date = DateField(label=_(u"Excavation end date"), + start_date = DateField(label=_("Start date"), required=False) + excavation_end_date = DateField(label=_("Excavation end date"), required=False) - report_delivery_date = DateField(label=_(u"Report delivery date"), + report_delivery_date = DateField(label=_("Report delivery date"), required=False) - report_processing = forms.ChoiceField(label=_(u"Report processing"), + report_processing = forms.ChoiceField(label=_("Report processing"), choices=[], required=False) if settings.COUNTRY == 'fr': cira_date = DateField(label="Date avis CTRA/CIRA", required=False) @@ -947,13 +947,13 @@ class OperationFormGeneral(CustomForm, ManageOldType): and cleaned_data.get('excavation_end_date', None): if not cleaned_data.get('start_date', None): raise forms.ValidationError( - _(u"If you want to set an excavation end date you " - u"have to provide a start date.")) + _("If you want to set an excavation end date you " + "have to provide a start date.")) if cleaned_data['excavation_end_date'] \ < cleaned_data['start_date']: raise forms.ValidationError( - _(u"The excavation end date cannot be before the start " - u"date.")) + _("The excavation end date cannot be before the start " + "date.")) # verify patriarche code_p = self.cleaned_data.get('code_patriarche', None) @@ -963,8 +963,8 @@ class OperationFormGeneral(CustomForm, ManageOldType): if 'pk' in cleaned_data and cleaned_data['pk']: ops = ops.exclude(pk=cleaned_data['pk']) if ops.count(): - msg = u"Ce code OA a déjà été affecté à une "\ - u"autre opération" + msg = "Ce code OA a déjà été affecté à une "\ + "autre opération" raise forms.ValidationError(msg) # manage unique operation ID @@ -982,21 +982,21 @@ class OperationFormGeneral(CustomForm, ManageOldType): Max('operation_code'))["operation_code__max"] if year and max_val: msg = _( - u"Operation code already exists for year: %(year)d - use a " - u"value bigger than %(last_val)d") % { + "Operation code already exists for year: %(year)d - use a " + "value bigger than %(last_val)d") % { 'year': year, 'last_val': max_val} else: - msg = _(u"Bad operation code") + msg = _("Bad operation code") raise forms.ValidationError(msg) return self.cleaned_data class OperationFormModifGeneral(OperationFormGeneral): - operation_code = forms.IntegerField(label=_(u"Operation code"), + operation_code = forms.IntegerField(label=_("Operation code"), required=False) currents = {'associated_file': File} associated_file = forms.IntegerField( - label=_(u"Archaeological file"), + label=_("Archaeological file"), widget=widgets.JQueryAutoComplete( reverse_lazy('autocomplete-file'), associated_model=File), @@ -1038,16 +1038,16 @@ class CourtOrderedSeizureForm(CustomForm, IshtarForm): } seizure_name = forms.CharField( - label=_(u"Seizure name"), required=False, + label=_("Seizure name"), required=False, ) official_report_number = forms.CharField( - label=_(u"Official report number"), required=False, + label=_("Official report number"), required=False, ) protagonist = forms.IntegerField( widget=widgets.JQueryAutoComplete( reverse_lazy('autocomplete-person-permissive'), associated_model=Person, new=True), - label=_(u"Protagonist"), required=False, + label=_("Protagonist"), required=False, ) applicant_authority = forms.IntegerField( widget=widgets.JQueryAutoComplete( @@ -1064,8 +1064,8 @@ class CourtOrderedSeizureForm(CustomForm, IshtarForm): class CollaboratorForm(CustomForm, IshtarForm): - form_label = _(u"Collaborators") - form_admin_name = _(u"Operation - 020 - Collaborators") + form_label = _("Collaborators") + form_admin_name = _("Operation - 020 - Collaborators") form_slug = "operation-020-collaborators" base_models = ['collaborator'] @@ -1080,37 +1080,37 @@ class CollaboratorForm(CustomForm, IshtarForm): class OperationFormPreventive(CustomForm, IshtarForm): - form_label = _(u"Preventive informations - excavation") - form_admin_name = _(u"Operation - 033 - Preventive - Excavation") + form_label = _("Preventive informations - excavation") + form_admin_name = _("Operation - 033 - Preventive - Excavation") form_slug = "operation-033-preventive-excavation" - cost = forms.IntegerField(label=_(u"Cost (euros)"), required=False) - scheduled_man_days = forms.IntegerField(label=_(u"Scheduled man-days"), + cost = forms.IntegerField(label=_("Cost (euros)"), required=False) + scheduled_man_days = forms.IntegerField(label=_("Scheduled man-days"), required=False) - optional_man_days = forms.IntegerField(label=_(u"Optional man-days"), + optional_man_days = forms.IntegerField(label=_("Optional man-days"), required=False) - effective_man_days = forms.IntegerField(label=_(u"Effective man-days"), + effective_man_days = forms.IntegerField(label=_("Effective man-days"), required=False) if settings.COUNTRY == 'fr': fnap_financing = forms.FloatField( - required=False, label=u"Pourcentage de financement FNAP", + required=False, label="Pourcentage de financement FNAP", validators=[validators.MinValueValidator(0), validators.MaxValueValidator(100)]) class OperationFormPreventiveDiag(CustomForm, IshtarForm): form_label = _("Preventive informations - diagnostic") - form_admin_name = _(u"Operation - 037 - Preventive - Diagnostic") + form_admin_name = _("Operation - 037 - Preventive - Diagnostic") form_slug = "operation-037-preventive-diagnostic" if settings.COUNTRY == 'fr': zoning_prescription = forms.NullBooleanField( - required=False, label=_(u"Prescription on zoning")) + required=False, label=_("Prescription on zoning")) large_area_prescription = forms.NullBooleanField( - required=False, label=_(u"Prescription on large area")) + required=False, label=_("Prescription on large area")) geoarchaeological_context_prescription = forms.NullBooleanField( required=False, - label=_(u"Prescription on geoarchaeological context")) + label=_("Prescription on geoarchaeological context")) class SelectedTownForm(IshtarForm): @@ -1130,13 +1130,13 @@ class SelectedTownForm(IshtarForm): SelectedTownFormset = formset_factory(SelectedTownForm, can_delete=True, formset=TownFormSet) -SelectedTownFormset.form_label = _(u"Towns") -SelectedTownFormset.form_admin_name = _(u"Operation - 040 - Towns") +SelectedTownFormset.form_label = _("Towns") +SelectedTownFormset.form_admin_name = _("Operation - 040 - Towns") SelectedTownFormset.form_slug = "operation-040-towns" TownFormset = formset_factory(TownForm, can_delete=True, formset=TownFormSet) TownFormset.form_label = _("Towns") -TownFormset.form_admin_name = _(u"Operation - 040 - Towns (2)") +TownFormset.form_admin_name = _("Operation - 040 - Towns (2)") TownFormset.form_slug = "operation-040-towns-2" @@ -1158,14 +1158,14 @@ class SelectedParcelForm(IshtarForm): SelectedParcelFormSet = formset_factory(SelectedParcelForm, can_delete=True, formset=ParcelFormSet) SelectedParcelFormSet.form_label = _("Parcels") -SelectedParcelFormSet.form_admin_name = _(u"Operation - 050 - Parcels") +SelectedParcelFormSet.form_admin_name = _("Operation - 050 - Parcels") SelectedParcelFormSet.form_slug = "operation-050-parcels" SelectedParcelGeneralFormSet = formset_factory(ParcelForm, can_delete=True, formset=ParcelFormSet) SelectedParcelGeneralFormSet.form_label = _("Parcels") SelectedParcelGeneralFormSet.form_admin_name = _( - u"Operation - 050 - Parcels (2)") + "Operation - 050 - Parcels (2)") SelectedParcelGeneralFormSet.form_slug = "operation-050-parcels-2" """ @@ -1195,14 +1195,14 @@ class SelectedParcelFormSet(forms.Form): class RemainForm(CustomForm, ManageOldType, forms.Form): - form_label = _(u"Remain types") - form_admin_name = _(u"Operation - 060 - Remains") + form_label = _("Remain types") + form_admin_name = _("Operation - 060 - Remains") form_slug = "operation-060-remains" base_model = 'remain' associated_models = {'remain': models.RemainType} remain = widgets.Select2MultipleField( - label=_(u"Remain type"), required=False + label=_("Remain type"), required=False ) TYPES = [ @@ -1211,14 +1211,14 @@ class RemainForm(CustomForm, ManageOldType, forms.Form): class PeriodForm(CustomForm, ManageOldType, forms.Form): - form_label = _(u"Periods") - form_admin_name = _(u"Operation - 070 - Periods") + form_label = _("Periods") + form_admin_name = _("Operation - 070 - Periods") form_slug = "operation-070-periods" base_model = 'period' associated_models = {'period': models.Period} period = widgets.Select2MultipleField( - label=_(u"Period"), required=False + label=_("Period"), required=False ) TYPES = [ @@ -1231,9 +1231,9 @@ class ArchaeologicalSiteForm(ManageOldType): 'cultural_attribution': models.CulturalAttributionType, 'spatial_reference_system': SpatialReferenceSystem} HEADERS = {} - reference = forms.CharField(label=_(u"Reference"), max_length=200) - name = forms.CharField(label=_(u"Name"), max_length=200, required=False) - other_reference = forms.CharField(label=_(u"Other reference"), + reference = forms.CharField(label=_("Reference"), max_length=200) + name = forms.CharField(label=_("Name"), max_length=200, required=False) + other_reference = forms.CharField(label=_("Other reference"), required=False) periods = forms.MultipleChoiceField( label=_("Periods"), choices=[], widget=widgets.Select2Multiple, @@ -1245,18 +1245,18 @@ class ArchaeologicalSiteForm(ManageOldType): label=_("Cultural attributions"), choices=[], widget=widgets.Select2Multiple, required=False) - HEADERS['x'] = FormHeader(_(u"Coordinates")) - x = forms.FloatField(label=_(u"X"), required=False) - estimated_error_x = forms.FloatField(label=_(u"Estimated error for X"), + HEADERS['x'] = FormHeader(_("Coordinates")) + x = forms.FloatField(label=_("X"), required=False) + estimated_error_x = forms.FloatField(label=_("Estimated error for X"), required=False) - y = forms.FloatField(label=_(u"Y"), required=False) - estimated_error_y = forms.FloatField(label=_(u"Estimated error for Y"), + y = forms.FloatField(label=_("Y"), required=False) + estimated_error_y = forms.FloatField(label=_("Estimated error for Y"), required=False) - z = forms.FloatField(label=_(u"Z"), required=False) - estimated_error_z = forms.FloatField(label=_(u"Estimated error for Z"), + z = forms.FloatField(label=_("Z"), required=False) + estimated_error_z = forms.FloatField(label=_("Estimated error for Z"), required=False) spatial_reference_system = forms.ChoiceField( - label=_(u"Spatial Reference System"), required=False, choices=[]) + label=_("Spatial Reference System"), required=False, choices=[]) PROFILE_FILTER = { 'mapping': [ @@ -1287,7 +1287,7 @@ class ArchaeologicalSiteForm(ManageOldType): reference = self.cleaned_data['reference'] if models.ArchaeologicalSite.objects\ .filter(reference=reference).count(): - raise forms.ValidationError(_(u"This reference already exists.")) + raise forms.ValidationError(_("This reference already exists.")) return reference def save(self, user): @@ -1345,9 +1345,9 @@ class ArchaeologicalSiteBasicForm(widgets.Select2Media, IshtarForm): ArchaeologicalSiteFormSet = formset_factory( ArchaeologicalSiteBasicForm, can_delete=True, formset=FormSet) -ArchaeologicalSiteFormSet.form_label = _(u"Archaeological sites") +ArchaeologicalSiteFormSet.form_label = _("Archaeological sites") ArchaeologicalSiteFormSet.form_admin_name = _( - u"Operation - 030 - Archaeological sites") + "Operation - 030 - Archaeological sites") ArchaeologicalSiteFormSet.form_slug = "operation-030-archaeological-sites" ArchaeologicalSiteFormSet.extra_form_modals = ["archaeologicalsite"] @@ -1360,17 +1360,17 @@ class ArchaeologicalSiteSelectionForm(IshtarForm): reverse_lazy('autocomplete-archaeologicalsite'), associated_model=models.ArchaeologicalSite, new=True, multiple=True), - label=_(u"Search")) + label=_("Search")) class FinalOperationClosingForm(FinalForm): confirm_msg = " " - confirm_end_msg = _(u"Would you like to close this operation?") + confirm_end_msg = _("Would you like to close this operation?") class OperationDeletionForm(FinalForm): confirm_msg = " " - confirm_end_msg = _(u"Would you like to delete this operation?") + confirm_end_msg = _("Would you like to delete this operation?") ######### # Sites # @@ -1379,60 +1379,60 @@ class OperationDeletionForm(FinalForm): class SiteSelect(DocumentItemSelect): _model = models.ArchaeologicalSite - form_admin_name = _(u"Archaeological site - 001 - Search") + form_admin_name = _("Archaeological site - 001 - Search") form_slug = "archaeological_site-001-search" search_vector = forms.CharField( - label=_(u"Full text search"), widget=widgets.SearchWidget( + label=_("Full text search"), widget=widgets.SearchWidget( 'archaeological-operations', 'site')) - reference = forms.CharField(label=_(u"Reference"), max_length=200, + reference = forms.CharField(label=_("Reference"), max_length=200, required=False) - name = forms.CharField(label=_(u"Name"), max_length=200, required=False) + name = forms.CharField(label=_("Name"), max_length=200, required=False) other_reference = forms.CharField(label=_("Other reference"), max_length=200, required=False) - periods = forms.ChoiceField(label=_(u"Periods"), choices=[], required=False) - remains = forms.ChoiceField(label=_(u"Remains"), choices=[], required=False) + periods = forms.ChoiceField(label=_("Periods"), choices=[], required=False) + remains = forms.ChoiceField(label=_("Remains"), choices=[], required=False) cultural_attributions = forms.ChoiceField( label=_("Cultural attribution"), choices=[], required=False) towns = get_town_field() towns__areas = forms.ChoiceField(label=_("Areas"), choices=[]) - comment = forms.CharField(label=_(u"Comment"), max_length=200, + comment = forms.CharField(label=_("Comment"), max_length=200, required=False) top_operation = forms.IntegerField( - label=_(u"Top operation"), required=False, + label=_("Top operation"), required=False, widget=widgets.JQueryAutoComplete( reverse_lazy('autocomplete-operation'), associated_model=models.Operation), validators=[valid_id(models.Operation)]) operation = forms.IntegerField( - label=_(u"Operation"), required=False, + label=_("Operation"), required=False, widget=widgets.JQueryAutoComplete( reverse_lazy('autocomplete-operation'), associated_model=models.Operation), validators=[valid_id(models.Operation)]) locality_ngi = forms.CharField( - label=_(u"National Geographic Institute locality"), max_length=200, + label=_("National Geographic Institute locality"), max_length=200, required=False) locality_cadastral = forms.CharField( - label=_(u"Cadastral locality"), max_length=200, + label=_("Cadastral locality"), max_length=200, required=False) affmar_number = forms.CharField( - label=_(u"AffMar number"), required=False, max_length=100) + label=_("AffMar number"), required=False, max_length=100) drassm_number = forms.CharField( - label=_(u"DRASSM number"), required=False, max_length=100) + label=_("DRASSM number"), required=False, max_length=100) shipwreck_name = forms.CharField( - label=_(u"Shipwreck name"), max_length=200, + label=_("Shipwreck name"), max_length=200, required=False) oceanographic_service_localisation = forms.CharField( - label=_(u"Oceanographic service localisation"), max_length=200, + label=_("Oceanographic service localisation"), max_length=200, required=False) shipwreck_code = forms.CharField( - label=_(u"Shipwreck code"), max_length=200, + label=_("Shipwreck code"), max_length=200, required=False) - sinking_date = DateField(label=_(u"Sinking date"), required=False) + sinking_date = DateField(label=_("Sinking date"), required=False) discovery_area = forms.CharField( - label=_(u"Discovery area"), max_length=200, + label=_("Discovery area"), max_length=200, required=False) TYPES = [ FieldType('periods', models.Period), @@ -1491,9 +1491,9 @@ class SiteFormMultiSelection(LockForm, MultiSearchForm): class SiteForm(CustomForm, ManageOldType): HEADERS = {} - form_label = _(u"General") - form_admin_name = _(u"Archaeological site - 010 - General") - form_slug = u"archaeological_site-010-general" + form_label = _("General") + form_admin_name = _("Archaeological site - 010 - General") + form_slug = "archaeological_site-010-general" associated_models = {'period': models.Period, 'remain': models.RemainType, 'spatial_reference_system': SpatialReferenceSystem, 'cultural_attribution': models.CulturalAttributionType, @@ -1501,8 +1501,8 @@ class SiteForm(CustomForm, ManageOldType): base_models = ["period", "remain", "collaborator", "cultural_attribution"] pk = forms.IntegerField(required=False, widget=forms.HiddenInput) - reference = forms.CharField(label=_(u"Reference"), max_length=200) - name = forms.CharField(label=_(u"Name"), max_length=200, required=False) + reference = forms.CharField(label=_("Reference"), max_length=200) + name = forms.CharField(label=_("Name"), max_length=200, required=False) other_reference = forms.CharField(label=_("Other reference"), required=False) period = forms.MultipleChoiceField( @@ -1517,29 +1517,29 @@ class SiteForm(CustomForm, ManageOldType): required=False) collaborator = widgets.Select2MultipleField( model=Person, label=_("Collaborators"), required=False, remote=True) - comment = forms.CharField(label=_(u"Comment"), widget=forms.Textarea, + comment = forms.CharField(label=_("Comment"), widget=forms.Textarea, required=False) locality_ngi = forms.CharField( - label=_(u"National Geographic Institute locality"), + label=_("National Geographic Institute locality"), widget=forms.Textarea, required=False ) locality_cadastral = forms.CharField( - label=_(u"Cadastral locality"), + label=_("Cadastral locality"), widget=forms.Textarea, required=False ) - HEADERS['x'] = FormHeader(_(u"Coordinates")) - x = forms.FloatField(label=_(u"X"), required=False) - estimated_error_x = forms.FloatField(label=_(u"Estimated error for X"), + HEADERS['x'] = FormHeader(_("Coordinates")) + x = forms.FloatField(label=_("X"), required=False) + estimated_error_x = forms.FloatField(label=_("Estimated error for X"), required=False) - y = forms.FloatField(label=_(u"Y"), required=False) - estimated_error_y = forms.FloatField(label=_(u"Estimated error for Y"), + y = forms.FloatField(label=_("Y"), required=False) + estimated_error_y = forms.FloatField(label=_("Estimated error for Y"), required=False) - z = forms.FloatField(label=_(u"Z"), required=False) - estimated_error_z = forms.FloatField(label=_(u"Estimated error for Z"), + z = forms.FloatField(label=_("Z"), required=False) + estimated_error_z = forms.FloatField(label=_("Estimated error for Z"), required=False) spatial_reference_system = forms.ChoiceField( - label=_(u"Spatial Reference System"), required=False, choices=[]) + label=_("Spatial Reference System"), required=False, choices=[]) PROFILE_FILTER = { 'mapping': [ @@ -1571,15 +1571,15 @@ class SiteForm(CustomForm, ManageOldType): if 'pk' in self.cleaned_data and self.cleaned_data['pk']: q = q.exclude(pk=self.cleaned_data['pk']) if q.count(): - raise forms.ValidationError(_(u"This reference already exists.")) + raise forms.ValidationError(_("This reference already exists.")) return reference SiteTownFormset = formset_factory(TownForm, can_delete=True, formset=TownFormSet) -SiteTownFormset.form_label = _(u"Towns") -SiteTownFormset.form_admin_name = _(u"Archaeological site - 020 - Towns") -SiteTownFormset.form_slug = u"archaeological_site-020-towns" +SiteTownFormset.form_label = _("Towns") +SiteTownFormset.form_admin_name = _("Archaeological site - 020 - Towns") +SiteTownFormset.form_slug = "archaeological_site-020-towns" def check_underwater_module(self): @@ -1587,24 +1587,24 @@ def check_underwater_module(self): class SiteUnderwaterForm(CustomForm, ManageOldType): - form_label = _(u"Underwater") - form_admin_name = _(u"Archaeological site - 030 - Underwater") - form_slug = u"archaeological_site-030-underwater" + form_label = _("Underwater") + form_admin_name = _("Archaeological site - 030 - Underwater") + form_slug = "archaeological_site-030-underwater" affmar_number = forms.CharField( - label=_(u"AffMar number"), required=False, max_length=100) + label=_("AffMar number"), required=False, max_length=100) drassm_number = forms.CharField( - label=_(u"DRASSM number"), required=False, max_length=100) + label=_("DRASSM number"), required=False, max_length=100) shipwreck_name = forms.CharField( - label=_(u"Shipwreck name"), required=False) + label=_("Shipwreck name"), required=False) shipwreck_code = forms.CharField( - label=_(u"Shipwreck code"), required=False) + label=_("Shipwreck code"), required=False) sinking_date = DateField( - label=_(u"Sinking date"), required=False) + label=_("Sinking date"), required=False) discovery_area = forms.CharField( - label=_(u"Discovery area"), widget=forms.Textarea, required=False) + label=_("Discovery area"), widget=forms.Textarea, required=False) oceanographic_service_localisation = forms.CharField( - label=_(u"Oceanographic service localisation"), + label=_("Oceanographic service localisation"), widget=forms.Textarea, required=False ) @@ -1618,36 +1618,36 @@ class AdministrativeActOpeSelect(TableSelect): _model = models.AdministrativeAct search_vector = forms.CharField( - label=_(u"Full text search"), widget=widgets.SearchWidget( + label=_("Full text search"), widget=widgets.SearchWidget( 'archaeological-operations', 'administrativeact', 'administrativeactop', )) year = forms.IntegerField(label=_("Year")) index = forms.IntegerField(label=_("Index")) if settings.COUNTRY == 'fr': - ref_sra = forms.CharField(label=u"Autre référence", + ref_sra = forms.CharField(label="Autre référence", max_length=15) operation__code_patriarche = forms.CharField( max_length=500, widget=OAWidget, label="Code PATRIARCHE") act_type = forms.ChoiceField(label=_("Act type"), choices=[]) - indexed = forms.NullBooleanField(label=_(u"Indexed?")) + indexed = forms.NullBooleanField(label=_("Indexed?")) operation__towns = get_town_field() - parcel = forms.CharField(label=_(u"Parcel")) + parcel = forms.CharField(label=_("Parcel")) if settings.ISHTAR_DPTS: operation__towns__numero_insee__startswith = forms.ChoiceField( - label=_(u"Department"), choices=[]) - act_object = forms.CharField(label=_(u"Object"), + label=_("Department"), choices=[]) + act_object = forms.CharField(label=_("Object"), max_length=300) history_creator = forms.IntegerField( - label=_(u"Created by"), + label=_("Created by"), widget=widgets.JQueryAutoComplete( reverse_lazy('autocomplete-person', args=['0', 'user']), associated_model=Person), validators=[valid_id(Person)]) history_modifier = forms.IntegerField( - label=_(u"Modified by"), + label=_("Modified by"), widget=widgets.JQueryAutoComplete( reverse_lazy('autocomplete-person', args=['0', 'user']), @@ -1683,7 +1683,7 @@ class AdministrativeActOpeFormSelection(IshtarForm): cleaned_data = self.cleaned_data if 'pk' not in cleaned_data or not cleaned_data['pk']: raise forms.ValidationError( - _(u"You should select an administrative act.")) + _("You should select an administrative act.")) return cleaned_data @@ -1699,12 +1699,12 @@ class AdministrativeActForm(CustomForm, ManageOldType): reverse_lazy('autocomplete-person'), associated_model=Person, new=True), validators=[valid_id(Person)], required=False) - act_object = forms.CharField(label=_(u"Object"), max_length=300, + act_object = forms.CharField(label=_("Object"), max_length=300, widget=forms.Textarea, required=False) signature_date = DateField( - label=_(u"Signature date"), initial=get_now) + label=_("Signature date"), initial=get_now) if settings.COUNTRY == 'fr': - ref_sra = forms.CharField(label=u"Autre référence", max_length=15, + ref_sra = forms.CharField(label="Autre référence", max_length=15, required=False) TYPES = [ @@ -1714,7 +1714,7 @@ class AdministrativeActForm(CustomForm, ManageOldType): class AdministrativeActOpeForm(AdministrativeActForm): - form_admin_name = _(u"Operation - Administrative act - General") + form_admin_name = _("Operation - Administrative act - General") form_slug = "operation-adminact-general" @@ -1748,11 +1748,11 @@ class AdministrativeActModifForm(object): msg = '' if year and max_val: msg = _( - u"This index already exists for year: %(year)d - use a " - u"value bigger than %(last_val)d") % { + "This index already exists for year: %(year)d - use a " + "value bigger than %(last_val)d") % { 'year': year, 'last_val': max_val} else: - msg = _(u"Bad index") + msg = _("Bad index") raise forms.ValidationError(msg) return self.cleaned_data @@ -1765,7 +1765,7 @@ class AdministrativeActOpeModifForm(AdministrativeActModifForm, class FinalAdministrativeActDeleteForm(FinalForm): confirm_msg = " " - confirm_end_msg = _(u"Would you like to delete this administrative act?") + confirm_end_msg = _("Would you like to delete this administrative act?") class DocumentGenerationAdminActForm(IshtarForm): @@ -1788,18 +1788,18 @@ class DocumentGenerationAdminActForm(IshtarForm): def clean(self): if not self.obj: raise forms.ValidationError( - _(u"You should select an administrative act.")) + _("You should select an administrative act.")) cleaned_data = self.cleaned_data try: dt = DocumentTemplate.objects.get( pk=self.cleaned_data['document_template']) except DocumentTemplate.DoesNotExist: - raise forms.ValidationError(_(u"This document is not intended for " - u"this type of act.")) + raise forms.ValidationError(_("This document is not intended for " + "this type of act.")) if self.obj.act_type.pk not in [ act_type.pk for act_type in dt.acttypes.all()]: - raise forms.ValidationError(_(u"This document is not intended for " - u"this type of act.")) + raise forms.ValidationError(_("This document is not intended for " + "this type of act.")) return cleaned_data def save(self, object_pk): @@ -1818,7 +1818,7 @@ class DocumentGenerationAdminActForm(IshtarForm): class GenerateDocForm(IshtarForm): form_label = _("Doc generation") doc_generation = forms.ChoiceField( - required=False, choices=[], label=_(u"Generate the associated doc?")) + required=False, choices=[], label=_("Generate the associated doc?")) def __init__(self, *args, **kwargs): choices = [] @@ -1830,7 +1830,7 @@ class GenerateDocForm(IshtarForm): class AdministrativeActRegisterSelect(AdministrativeActOpeSelect): - indexed = forms.NullBooleanField(label=_(u"Indexed?")) + indexed = forms.NullBooleanField(label=_("Indexed?")) def __init__(self, *args, **kwargs): super(AdministrativeActRegisterSelect, self).__init__(*args, **kwargs) @@ -1839,7 +1839,7 @@ class AdministrativeActRegisterSelect(AdministrativeActOpeSelect): class AdministrativeActRegisterFormSelection(IshtarForm): - form_label = pgettext_lazy('admin act register', u"Register") + form_label = pgettext_lazy('admin act register', "Register") associated_models = {'pk': models.AdministrativeAct} currents = {'pk': models.AdministrativeAct} pk = forms.IntegerField( @@ -1855,7 +1855,7 @@ class AdministrativeActRegisterFormSelection(IshtarForm): cleaned_data = self.cleaned_data if 'pk' not in cleaned_data or not cleaned_data['pk']: raise forms.ValidationError( - _(u"You should select an administrative act.")) + _("You should select an administrative act.")) return cleaned_data @@ -1875,7 +1875,7 @@ class QAOperationFormMulti(QAForm): 'qa_operator', ] qa_operation_type = forms.ChoiceField( - label=_(u"Operation type"), required=False + label=_("Operation type"), required=False ) qa_towns = get_town_field(required=False) qa_operator = forms.IntegerField( diff --git a/archaeological_operations/ishtar_menu.py b/archaeological_operations/ishtar_menu.py index 615e1f491..6a5ae1d46 100644 --- a/archaeological_operations/ishtar_menu.py +++ b/archaeological_operations/ishtar_menu.py @@ -29,57 +29,57 @@ from archaeological_operations import models MENU_SECTIONS = [ (30, SectionItem( - 'operation_management', _(u"Operation"), + 'operation_management', _("Operation"), css='menu-operation', childs=[ MenuItem( - 'operation_search', _(u"Search"), + 'operation_search', _("Search"), model=models.Operation, access_controls=['view_operation', 'view_own_operation']), MenuItem( - 'operation_creation', _(u"Creation"), + 'operation_creation', _("Creation"), model=models.Operation, access_controls=['add_operation', 'add_own_operation']), MenuItem( - 'operation_modification', _(u"Modification"), + 'operation_modification', _("Modification"), model=models.Operation, access_controls=['change_operation', 'change_own_operation']), MenuItem( - 'operation_closing', _(u"Closing"), + 'operation_closing', _("Closing"), model=models.Operation, access_controls=['close_operation']), MenuItem( - 'operation_deletion', _(u"Deletion"), + 'operation_deletion', _("Deletion"), model=models.Operation, access_controls=['change_operation', 'change_own_operation']), SectionItem( 'admin_act_operations', - _(u"Administrative act"), + _("Administrative act"), profile_restriction='files', childs=[ MenuItem( 'operation_administrativeactop_search', - _(u"Search"), + _("Search"), model=models.AdministrativeAct, access_controls=[ 'change_administrativeact']), MenuItem( 'operation_administrativeactop', - _(u"Creation"), + _("Creation"), model=models.AdministrativeAct, access_controls=['change_administrativeact']), MenuItem( 'operation_administrativeactop_modification', - _(u"Modification"), + _("Modification"), model=models.AdministrativeAct, access_controls=['change_administrativeact']), MenuItem( 'operation_administrativeactop_deletion', - _(u"Deletion"), + _("Deletion"), model=models.AdministrativeAct, access_controls=['change_administrativeact']), ],), @@ -87,13 +87,13 @@ MENU_SECTIONS = [ ), ( 35, SectionItem( - 'administrativact_management', _(u"Administrative Act"), + 'administrativact_management', _("Administrative Act"), profile_restriction='files', css='menu-file', childs=[ MenuItem( 'administrativact_register', - pgettext_lazy('admin act register', u"Register"), + pgettext_lazy('admin act register', "Register"), model=models.AdministrativeAct, access_controls=['view_administrativeact', 'view_own_administrativeact']), @@ -105,22 +105,22 @@ MENU_SECTIONS = [ profile_restriction='archaeological_site', childs=[ MenuItem( - 'site_search', _(u"Search"), + 'site_search', _("Search"), model=models.ArchaeologicalSite, access_controls=['view_archaeologicalsite', 'view_own_archaeologicalsite']), MenuItem( - 'site_creation', _(u"Creation"), + 'site_creation', _("Creation"), model=models.ArchaeologicalSite, access_controls=['add_archaeologicalsite', 'add_own_archaeologicalsite']), MenuItem( - 'site_modification', _(u"Modification"), + 'site_modification', _("Modification"), model=models.ArchaeologicalSite, access_controls=['change_archaeologicalsite', 'change_own_archaeologicalsite']), MenuItem('site_deletion', - _(u"Deletion"), + _("Deletion"), model=models.ArchaeologicalSite, access_controls=['change_archaeologicalsite']), ]), @@ -129,15 +129,15 @@ MENU_SECTIONS = [ """ ( 102, SectionItem( - 'dashboard', _(u"Dashboard"), + 'dashboard', _("Dashboard"), css='menu-operation', childs=[ MenuItem( - 'dashboard_main', _(u"General informations"), + 'dashboard_main', _("General informations"), model=models.Operation, access_controls=['change_operation']), MenuItem( - 'dashboard_operation', _(u"Operations"), + 'dashboard_operation', _("Operations"), model=models.Operation, access_controls=['change_operation']), ]), diff --git a/archaeological_operations/lookups.py b/archaeological_operations/lookups.py index 2d70029ce..66bcf0831 100644 --- a/archaeological_operations/lookups.py +++ b/archaeological_operations/lookups.py @@ -24,7 +24,7 @@ class OperationLookup(LookupChannel): return self.model.objects.filter(query).order_by('cached_label')[:20] def format_item_display(self, item): - return u"<span class='ajax-label'>%s</span>" % item.cached_label + return "<span class='ajax-label'>%s</span>" % item.cached_label @register('archaeological_site') @@ -75,7 +75,7 @@ class ParcelLookup(LookupChannel): return escape(force_text(obj.long_label())) def format_item_display(self, item): - return u"<span class='ajax-label'>%s</span>" % item.long_label() + return "<span class='ajax-label'>%s</span>" % item.long_label() @register("cultural_attribution_type") diff --git a/archaeological_operations/models.py b/archaeological_operations/models.py index 0c4f6330b..014d1071b 100644 --- a/archaeological_operations/models.py +++ b/archaeological_operations/models.py @@ -212,7 +212,7 @@ class ArchaeologicalSite(DocumentItem, BaseHistorizedItem, CompleteIdentifierIte 'towns__cached_label__iexact' ), 'towns__areas': SearchAltName( - pgettext_lazy("key for text search", u"area"), + pgettext_lazy("key for text search", "area"), 'towns__areas__label__iexact' ), 'comment': SearchAltName( @@ -286,13 +286,13 @@ class ArchaeologicalSite(DocumentItem, BaseHistorizedItem, CompleteIdentifierIte QA_LOCK = QuickAction( url="site-qa-lock", icon_class="fa fa-lock", - text=_(u"Lock/Unlock"), target="many", + text=_("Lock/Unlock"), target="many", rights=['change_archaeologicalsite', 'change_own_archaeologicalsite'] ) QA_EDIT = QuickAction( url="site-qa-bulk-update", icon_class="fa fa-pencil", - text=_(u"Bulk update"), target="many", + text=_("Bulk update"), target="many", rights=['change_archaeologicalsite', 'change_own_archaeologicalsite'] ) @@ -863,7 +863,7 @@ class Operation(ClosedItem, DocumentItem, BaseHistorizedItem, 'towns__cached_label__iexact' ), 'towns__areas': SearchAltName( - pgettext_lazy("key for text search", u"area"), + pgettext_lazy("key for text search", "area"), 'towns__areas__label__iexact' ), 'parcel': SearchAltName( @@ -1000,12 +1000,12 @@ class Operation(ClosedItem, DocumentItem, BaseHistorizedItem, QA_EDIT = QuickAction( url="operation-qa-bulk-update", icon_class="fa fa-pencil", - text=_(u"Bulk update"), target="many", + text=_("Bulk update"), target="many", rights=['change_operation', 'change_own_operation'] ) QA_LOCK = QuickAction( url="operation-qa-lock", icon_class="fa fa-lock", - text=_(u"Lock/Unlock"), target="many", + text=_("Lock/Unlock"), target="many", rights=['change_operation', 'change_own_operation'] ) QUICK_ACTIONS = [ diff --git a/archaeological_operations/utils.py b/archaeological_operations/utils.py index 801cc6ea4..55fb9ef76 100644 --- a/archaeological_operations/utils.py +++ b/archaeological_operations/utils.py @@ -337,12 +337,12 @@ def parse_comment_addr_nature(nature, addr, owner): nature = parse_string(nature) comments = [] if nature: - comments += [u"Aménagement :", nature] + comments += ["Aménagement :", nature] if addr: - comments += [u"Adresse :", addr] + comments += ["Adresse :", addr] if not comments: return "" - return u"\n".join(comments) + return "\n".join(comments) # si pas de start date : premier janvier de year diff --git a/archaeological_operations/views.py b/archaeological_operations/views.py index 0c3dc28a1..9bf7779f6 100644 --- a/archaeological_operations/views.py +++ b/archaeological_operations/views.py @@ -169,7 +169,7 @@ def dashboard_operation(request, *args, **kwargs): operation_search_wizard = wizards.OperationSearch.as_view( [('general-operation_search', forms.OperationFormSelection)], - label=_(u"Operation search"), + label=_("Operation search"), url_name='operation_search',) @@ -233,7 +233,7 @@ ope_crea_condition_dict = { operation_creation_wizard = wizards.OperationWizard.as_view( wizard_steps, - label=_(u"New operation"), + label=_("New operation"), condition_dict=ope_crea_condition_dict, url_name='operation_creation',) @@ -284,7 +284,7 @@ ope_modif_condition_dict = { operation_modification_wizard = wizards.OperationModificationWizard.as_view( operation_modif_wizard_steps, - label=_(u"Operation modification"), + label=_("Operation modification"), condition_dict=ope_modif_condition_dict, url_name='operation_modification',) @@ -316,7 +316,7 @@ operation_closing_steps = [ operation_closing_wizard = wizards.OperationClosingWizard.as_view( operation_closing_steps, - label=_(u"Operation closing"), + label=_("Operation closing"), url_name='operation_closing',) @@ -327,7 +327,7 @@ operation_deletion_steps = [ operation_deletion_wizard = wizards.OperationDeletionWizard.as_view( operation_deletion_steps, - label=_(u"Operation deletion"), + label=_("Operation deletion"), url_name='operation_deletion',) @@ -410,7 +410,7 @@ site_deletion_steps = [ site_deletion_wizard = wizards.SiteDeletionWizard.as_view( site_deletion_steps, - label=_(u"Site deletion"), + label=_("Site deletion"), url_name='site_deletion',) @@ -427,7 +427,7 @@ def site_delete(request, pk): operation_administrativeactop_search_wizard = wizards.SearchWizard.as_view([ ('general-operation_administrativeactop_search', forms.AdministrativeActOpeFormSelection)], - label=_(u"Administrative act search"), + label=_("Administrative act search"), url_name='operation_administrativeactop_search',) administrativeactop_steps = [ @@ -440,7 +440,7 @@ administrativeactop_steps = [ operation_administrativeactop_wizard = \ wizards.OperationAdministrativeActWizard.as_view( administrativeactop_steps, - label=_(u"Operation: new administrative act"), + label=_("Operation: new administrative act"), url_name='operation_administrativeactop',) operation_administrativeactop_modification_wizard = \ @@ -472,7 +472,7 @@ operation_administrativeactop_deletion_wizard = \ forms.AdministrativeActOpeFormSelection), ('final-operation_administrativeactop_deletion', forms.FinalAdministrativeActDeleteForm)], - label=_(u"Operation: administrative act deletion"), + label=_("Operation: administrative act deletion"), url_name='operation_administrativeactop_deletion',) @@ -491,7 +491,7 @@ def operation_administrativeactop_delete(request, pk): administrativact_register_wizard = SearchWizard.as_view([ ('general-administrativact_register', forms.AdministrativeActRegisterFormSelection)], - label=pgettext_lazy('admin act register', u"Register"), + label=pgettext_lazy('admin act register', "Register"), url_name='administrativact_register',) diff --git a/archaeological_operations/widgets.py b/archaeological_operations/widgets.py index 4ea86188f..fa7306208 100644 --- a/archaeological_operations/widgets.py +++ b/archaeological_operations/widgets.py @@ -52,18 +52,18 @@ class ParcelWidget(widgets.MultiWidget): class SelectParcelWidget(widgets.TextInput): def render(self, *args, **kwargs): render = super(SelectParcelWidget, self).render(*args, **kwargs) - html = u"""{} + html = """{} <div class="input-group-append"> <button class='input-group-text btn btn-success' name='formset_add' value='add'>{}</button> - </div>""".format(render, _(u"Add")) + </div>""".format(render, _("Add")) return mark_safe(html) class OAWidget(forms.TextInput): def render(self, name, value, attrs=None, renderer=None): if not value: - value = u"" + value = "" final_attrs = flatatt( self.build_attrs(attrs, {'name': name, 'value': value})) dct = {'final_attrs': final_attrs, diff --git a/archaeological_operations/wizards.py b/archaeological_operations/wizards.py index fc5ce0bf8..c76bbd313 100644 --- a/archaeological_operations/wizards.py +++ b/archaeological_operations/wizards.py @@ -207,8 +207,9 @@ class OperationWizard(Wizard): has_no_af = [form.prefix for form in forms if form.prefix == 'townsgeneral-operation'] and True if has_no_af: - datas = [[_(u"Warning: No Archaeological File is provided. " - u"If you have forget it return to the first step."), []]]\ + datas = [[ + _("Warning: No Archaeological File is provided. " + "If you have forget it return to the first step."), []]]\ + datas return datas diff --git a/archaeological_warehouse/ishtar_menu.py b/archaeological_warehouse/ishtar_menu.py index 17acae47a..fe012d214 100644 --- a/archaeological_warehouse/ishtar_menu.py +++ b/archaeological_warehouse/ishtar_menu.py @@ -27,46 +27,46 @@ from . import models MENU_SECTIONS = [ - (80, SectionItem('warehouse', _(u"Warehouse"), + (80, SectionItem('warehouse', _("Warehouse"), profile_restriction='warehouse', css='menu-warehouse', childs=[ - MenuItem('warehouse_search', _(u"Search"), + MenuItem('warehouse_search', _("Search"), model=models.Warehouse, access_controls=['view_warehouse', 'view_own_warehouse']), - MenuItem('warehouse_creation', _(u"Creation"), + MenuItem('warehouse_creation', _("Creation"), model=models.Warehouse, access_controls=['add_warehouse',]), - MenuItem('warehouse_modification', _(u"Modification"), + MenuItem('warehouse_modification', _("Modification"), model=models.Warehouse, access_controls=['change_warehouse',]), - MenuItem('warehouse_deletion', _(u"Deletion"), + MenuItem('warehouse_deletion', _("Deletion"), model=models.Warehouse, access_controls=['change_warehouse',]), SectionItem( - 'containers', _(u"Containers"), + 'containers', _("Containers"), childs=[ - MenuItem('container_search', _(u"Search"), + MenuItem('container_search', _("Search"), model=models.Warehouse, access_controls=['view_container', 'view_own_container']), - MenuItem('container_creation', _(u"Creation"), + MenuItem('container_creation', _("Creation"), model=models.Warehouse, access_controls=['add_container', 'add_own_container']), - MenuItem('container_modification', _(u"Modification"), + MenuItem('container_modification', _("Modification"), model=models.Warehouse, access_controls=['change_container', 'change_own_container']), MenuItem( - 'container-merge', _(u"Automatic merge"), + 'container-merge', _("Automatic merge"), model=models.Container, access_controls=['administrator']), MenuItem( - 'container-manual-merge', _(u"Manual merge"), + 'container-manual-merge', _("Manual merge"), model=models.Container, access_controls=['administrator']), - MenuItem('container_deletion', _(u"Deletion"), + MenuItem('container_deletion', _("Deletion"), model=models.Warehouse, access_controls=['change_container', 'change_own_container']), @@ -74,13 +74,13 @@ MENU_SECTIONS = [ ])) ] """ - MenuItem('warehouse_inventory', _(u"Inventory"), + MenuItem('warehouse_inventory', _("Inventory"), model=models.Warehouse, access_controls=['change_warehouse',]), - MenuItem('warehouse_recording', _(u"Recording"), + MenuItem('warehouse_recording', _("Recording"), model=Treatment, access_controls=['add_treatment', 'add_own_treatment']), - MenuItem('warehouse_lend', _(u"Lending"), + MenuItem('warehouse_lend', _("Lending"), model=Treatment, access_controls=['add_treatment', 'add_own_treatment']), """ diff --git a/archaeological_warehouse/lookups.py b/archaeological_warehouse/lookups.py index f4df88a7d..ea06db3c5 100644 --- a/archaeological_warehouse/lookups.py +++ b/archaeological_warehouse/lookups.py @@ -30,7 +30,7 @@ class ContainerLookup(LookupChannel): return escape(force_text(obj.cached_label)) def format_item_display(self, item): - return u"<span class='ajax-label'>%s</span>" % item.cached_label + return "<span class='ajax-label'>%s</span>" % item.cached_label @register('warehouse') @@ -48,4 +48,4 @@ class WarehouseLookup(LookupChannel): return self.model.objects.filter(query).order_by('name')[:20] def format_item_display(self, item): - return u"<span class='ajax-label'>%s</span>" % item.name + return "<span class='ajax-label'>%s</span>" % item.name diff --git a/example_project/__init__.py.base.sample b/example_project/__init__.py.base.sample index c6adb7559..6631c46d5 100644 --- a/example_project/__init__.py.base.sample +++ b/example_project/__init__.py.base.sample @@ -1,11 +1,11 @@ # force the retranslation of generated strings and external module from django.utils.translation import ugettext_lazy as _ -_(u"username") -_(u"email address") -_(u"warehouse") -_(u"New warehouse") -_(u"warehouse") -_(u"New organization") -_(u"New person") -_(u"New author") +_("username") +_("email address") +_("warehouse") +_("New warehouse") +_("warehouse") +_("New organization") +_("New person") +_("New author") diff --git a/example_project/__init__.py.celery.sample b/example_project/__init__.py.celery.sample index 5dad2ced8..3cda63729 100644 --- a/example_project/__init__.py.celery.sample +++ b/example_project/__init__.py.celery.sample @@ -5,11 +5,11 @@ from .celery_app import app as celery_app __all__ = ('celery_app',) -_(u"username") -_(u"email address") -_(u"warehouse") -_(u"New warehouse") -_(u"warehouse") -_(u"New organization") -_(u"New person") -_(u"New author") +_("username") +_("email address") +_("warehouse") +_("New warehouse") +_("warehouse") +_("New organization") +_("New person") +_("New author") diff --git a/example_project/settings.py b/example_project/settings.py index 8e2ad2e01..07d5de200 100644 --- a/example_project/settings.py +++ b/example_project/settings.py @@ -91,9 +91,9 @@ LANGUAGE_CODE = 'fr-fr' COUNTRY = "fr" -OOOK_DATE_FORMAT = u"%-d %B %Y" -OOO_DATE_FORMAT = u"%-d %B %Y" -DATE_FORMAT = u"%-d %B %Y" +OOOK_DATE_FORMAT = "%-d %B %Y" +OOO_DATE_FORMAT = "%-d %B %Y" +DATE_FORMAT = "%-d %B %Y" SITE_ID = 1 @@ -287,7 +287,7 @@ ISHTAR_OPE_TYPES = {} # DB key: txt_idx ISHTAR_PERIODS = {} ISHTAR_PERMIT_TYPES = {} -ISHTAR_DOC_TYPES = {u"undefined": u"Undefined"} +ISHTAR_DOC_TYPES = {"undefined": "Undefined"} ISHTAR_SEARCH_LANGUAGE = "french" diff --git a/ishtar_common/__init__.py b/ishtar_common/__init__.py index 6ae20f3c8..3d19ae8ff 100644 --- a/ishtar_common/__init__.py +++ b/ishtar_common/__init__.py @@ -5,8 +5,8 @@ from django.utils.translation import ugettext_lazy as _ # overload of translation of registration module -_(u"username") -_(u"email address") -_(u"Related item") +_("username") +_("email address") +_("Related item") default_app_config = 'ishtar_common.apps.IshtarCommonConfig' diff --git a/ishtar_common/admin.py b/ishtar_common/admin.py index 75e79b714..cccc1f889 100644 --- a/ishtar_common/admin.py +++ b/ishtar_common/admin.py @@ -92,9 +92,9 @@ ISHTAR_FORMS = [common_forms, file_pdl_forms, file_forms, operation_forms, class ImportGenericForm(forms.Form): csv_file = forms.FileField( - _(u"CSV file"), - help_text=_(u"Only unicode encoding is managed - convert your" - u" file first") + _("CSV file"), + help_text=_("Only unicode encoding is managed - convert your" + " file first") ) @@ -360,7 +360,7 @@ class AdminIshtarSiteProfileForm(forms.ModelForm): class Meta: model = models.IshtarSiteProfile exclude = [] - default_center = PointField(label=_(u"Maps - default center"), + default_center = PointField(label=_("Maps - default center"), widget=OSMWidget) @@ -398,8 +398,8 @@ admin_site.register(models.Organization, OrganizationAdmin) class ProfileInline(admin.TabularInline): model = models.UserProfile - verbose_name = _(u"Profile") - verbose_name_plural = _(u"Profiles") + verbose_name = _("Profile") + verbose_name_plural = _("Profiles") extra = 1 @@ -570,31 +570,31 @@ class ImportActionAdmin(admin.ModelAdmin): class ImportGeoJsonForm(forms.Form): json_file = forms.FileField( - _(u"Geojson file"), - help_text=_(u"Only unicode encoding is managed - convert your" - u" file first. The file must be a geojson file or a zip " - u"containing a geojson file.") + _("Geojson file"), + help_text=_("Only unicode encoding is managed - convert your" + " file first. The file must be a geojson file or a zip " + "containing a geojson file.") ) numero_insee_prefix = forms.CharField( - label=_(u"Prefix for numero INSEE"), max_length=20, required=False) + label=_("Prefix for numero INSEE"), max_length=20, required=False) numero_insee_name = forms.CharField( - label=_(u"Field name for numero INSEE"), max_length=200, + label=_("Field name for numero INSEE"), max_length=200, initial='numero_insee') name_name = forms.CharField( - label=_(u"Field name for name"), max_length=200, initial='name') - UNIT_CHOICES = (('1', _(u"m2")), ('1000', _(u"km2"))) + label=_("Field name for name"), max_length=200, initial='name') + UNIT_CHOICES = (('1', _("m2")), ('1000', _("km2"))) surface_unit = forms.ChoiceField( - label=_(u"Surface unit"), choices=UNIT_CHOICES) + label=_("Surface unit"), choices=UNIT_CHOICES) surface_name = forms.CharField( - label=_(u"Field name for surface"), max_length=200, required=False) + label=_("Field name for surface"), max_length=200, required=False) year_name = forms.CharField( - label=_(u"Field name for year"), max_length=200, required=False, + label=_("Field name for year"), max_length=200, required=False, initial="year", - help_text=_(u"Not required for new town. Leave it empty when not " - u"available.") + help_text=_("Not required for new town. Leave it empty when not " + "available.") ) update = forms.BooleanField( - label=_(u"Update only geometry of existing towns"), required=False, + label=_("Update only geometry of existing towns"), required=False, widget=forms.CheckboxInput ) @@ -708,14 +708,14 @@ class ImportGEOJSONActionAdmin(object): if zipfile.is_zipfile(tmpfilename): zfile = zipfile.ZipFile(tmpfilename) for zmember in zfile.namelist(): - if os.sep in zmember or u".." in zmember: + if os.sep in zmember or ".." in zmember: continue if zmember.endswith("json"): zfile.extract(zmember, tempdir) json_filename = tempdir + os.sep + zmember break if not json_filename: - error = _(u"No json file found in zipfile") + error = _("No json file found in zipfile") return self.import_geojson_error(request, error, base_dct, tempdir) else: @@ -738,7 +738,7 @@ class ImportGEOJSONActionAdmin(object): assert 'features' in dct assert dct['features'] except (ValueError, AssertionError): - error = _(u"Bad geojson file") + error = _("Bad geojson file") return self.import_geojson_error( request, error, base_dct, tempdir) @@ -748,7 +748,7 @@ class ImportGEOJSONActionAdmin(object): for idx, feat in enumerate(dct['features']): trace_error = True if error_count == 6: - self.message_user(request, _(u"Too many errors..."), + self.message_user(request, _("Too many errors..."), level=messages.ERROR) if error_count > 5: trace_error = False @@ -859,27 +859,27 @@ class AdminRelatedTownForm(forms.ModelForm): model = models_common.Town.children.through exclude = [] from_town = AutoCompleteSelectField( - 'town', required=True, label=_(u"Parent")) + 'town', required=True, label=_("Parent")) class AdminTownForm(forms.ModelForm): class Meta: model = models_common.Town exclude = ['imports', 'departement'] - center = PointField(label=_(u"Center"), required=False, + center = PointField(label=_("Center"), required=False, widget=OSMWidget) - limit = MultiPolygonField(label=_(u"Limit"), required=False, + limit = MultiPolygonField(label=_("Limit"), required=False, widget=OSMWidget) children = AutoCompleteSelectMultipleField('town', required=False, - label=_(u"Town children")) + label=_("Town children")) class TownParentInline(admin.TabularInline): model = models_common.Town.children.through fk_name = 'to_town' form = AdminRelatedTownForm - verbose_name = _(u"Parent") - verbose_name_plural = _(u"Parents") + verbose_name = _("Parent") + verbose_name_plural = _("Parents") extra = 1 @@ -1059,10 +1059,7 @@ class CreateDepartmentActionAdmin(GeneralTypeAdmin): area = models.Area.objects.get( id=form.cleaned_data["area"]) dpt_num = form.cleaned_data['department_number'] - if dpt_num < 10: - dpt_num = "0" + str(dpt_num) - else: - dpt_num = str(dpt_num) + dpt_num = "0" + str(dpt_num) if dpt_num < 10 else str(dpt_num) current_towns = [a.numero_insee for a in area.towns.all()] nb = 0 for town in models.Town.objects.filter( @@ -1190,7 +1187,7 @@ def duplicate_importertype(modeladmin, request, queryset): old_pk = obj.pk obj.pk = None obj.slug = create_slug(models.ImporterType, obj.name) - obj.name = obj.name + u" - duplicate" + obj.name = obj.name + " - duplicate" obj.name = obj.name[:200] obj.save() # create new old_obj = modeladmin.model.objects.get(pk=old_pk) @@ -1229,7 +1226,7 @@ def duplicate_importertype(modeladmin, request, queryset): messages.add_message( request, messages.INFO, str(_("{} importer type(s) duplicated: {}.")).format( - queryset.count(), u" ; ".join(res)) + queryset.count(), " ; ".join(res)) ) url = reverse( 'admin:%s_%s_changelist' % ( @@ -1239,7 +1236,7 @@ def duplicate_importertype(modeladmin, request, queryset): return HttpResponseRedirect(url) -duplicate_importertype.short_description = _(u"Duplicate") +duplicate_importertype.short_description = _("Duplicate") def generate_libreoffice_template(modeladmin, request, queryset): @@ -1313,7 +1310,7 @@ def duplicate_importercolumn(modeladmin, request, queryset): for col in queryset.order_by('col_number'): old_pk = col.pk col.pk = None - col.label = (col.label or u"") + u" - duplicate" + col.label = (col.label or "") + " - duplicate" col.label = col.label[:200] # get the next available col number col_nb = col.col_number + 1 @@ -1335,7 +1332,7 @@ def duplicate_importercolumn(modeladmin, request, queryset): messages.add_message( request, messages.INFO, str(_("{} importer column(s) duplicated: {}.")).format( - queryset.count(), u" ; ".join(res)) + queryset.count(), " ; ".join(res)) ) url = reverse( 'admin:%s_%s_changelist' % ( @@ -1345,7 +1342,7 @@ def duplicate_importercolumn(modeladmin, request, queryset): return HttpResponseRedirect(url) -duplicate_importercolumn.short_description = _(u"Duplicate") +duplicate_importercolumn.short_description = _("Duplicate") def shift_right(modeladmin, request, queryset): @@ -1369,7 +1366,7 @@ def shift_right(modeladmin, request, queryset): return HttpResponseRedirect(url) -shift_right.short_description = _(u"Shift right") +shift_right.short_description = _("Shift right") def shift_left(modeladmin, request, queryset): @@ -1410,7 +1407,7 @@ def shift_left(modeladmin, request, queryset): return HttpResponseRedirect(url) -shift_left.short_description = _(u"Shift left") +shift_left.short_description = _("Shift left") class ImporterDuplicateFieldInline(admin.TabularInline): @@ -1556,8 +1553,8 @@ class JsonDataFieldAdmin(admin.ModelAdmin): list_display = ['name', 'content_type', 'key', 'display', 'value_type', 'search_index', 'order', 'section'] actions = [ - change_value('display', True, _(u"Display selected")), - change_value('display', False, _(u"Hide selected")) + change_value('display', True, _("Display selected")), + change_value('display', False, _("Hide selected")) ] list_filter = ['value_type', 'search_index'] form = JsonDataFieldForm @@ -1586,9 +1583,9 @@ class CustomFormForm(forms.ModelForm): class Meta: model = models.CustomForm exclude = [] - form = forms.ChoiceField(label=_(u"Form"), choices=get_choices_form) + form = forms.ChoiceField(label=_("Form"), choices=get_choices_form) users = AutoCompleteSelectMultipleField('ishtaruser', required=False, - label=_(u"Users")) + label=_("Users")) class ExcludeFieldFormset(BaseInlineFormSet): @@ -1608,7 +1605,7 @@ class ExcludeFieldForm(forms.ModelForm): class Meta: model = models.ExcludedField exclude = [] - field = forms.ChoiceField(label=_(u"Field")) + field = forms.ChoiceField(label=_("Field")) def __init__(self, *args, **kwargs): choices = kwargs.pop('choices') diff --git a/ishtar_common/forms.py b/ishtar_common/forms.py index f1e5b34ca..74590c240 100644 --- a/ishtar_common/forms.py +++ b/ishtar_common/forms.py @@ -81,7 +81,7 @@ reverse_lazy = lazy(my_reverse, str) regexp_name = re.compile(r"^[\.,:/\w\-'\"() \&\[\]@]+$", re.UNICODE) name_validator = validators.RegexValidator( regexp_name, - _(u"Enter a valid name consisting of letters, spaces and hyphens."), + _("Enter a valid name consisting of letters, spaces and hyphens."), 'invalid') @@ -100,19 +100,19 @@ class FloatField(forms.FloatField): Allow the use of comma for separating float fields """ def clean(self, value): - if value and (isinstance(value, str) or isinstance(value, str)): + if value and isinstance(value, str): value = value.replace(',', '.').replace('%', '') return super(FloatField, self).clean(value) class FinalForm(forms.Form): final = True - form_label = _(u"Confirm") + form_label = _("Confirm") class FinalDeleteForm(FinalForm): confirm_msg = " " - confirm_end_msg = _(u"Are you sure you want to delete?") + confirm_end_msg = _("Are you sure you want to delete?") def get_readonly_clean(key): @@ -151,11 +151,11 @@ class BSForm(object): widget.attrs['class'] = cls # 32 bits max value if isinstance(self.fields[k], forms.IntegerField): - has_max = False - for validator in self.fields[k].validators: - if isinstance(validator, validators.MaxValueValidator): - has_max = True - break + has_max = any( + isinstance(validator, validators.MaxValueValidator) + for validator in self.fields[k].validators + ) + if not has_max: self.fields[k].validators.append( validators.MaxValueValidator(2147483647)) @@ -249,10 +249,7 @@ class CustomForm(BSForm): self._post_init() def are_available(self, keys): - for k in keys: - if k not in self.fields: - return False - return True + return all(k in self.fields for k in keys) def remove_field(self, key): if key in self.fields: @@ -404,13 +401,10 @@ class LockForm(object): if not pk_key: raise NotImplementedError("pk_key must be set") if pk_key not in cleaned_data or not cleaned_data[pk_key]: - raise forms.ValidationError(_(u"You should select an item.")) + raise forms.ValidationError(_("You should select an item.")) model = self.associated_models[pk_key] pks = self.cleaned_data[pk_key] - if isinstance(pks, int): - pks = [pks] - else: - pks = pks.split(",") + pks = [pks] if isinstance(pks, int) else pks.split(",") for pk in pks: try: item = model.objects.get(pk=pk) @@ -464,10 +458,10 @@ class MultiSearchForm(CustomFormSearch): except (current_model.DoesNotExist, ValueError): continue return [ - (u"", + ("", mark_safe( - u"<ul class='compact'><li>" + u"</li><li>".join(items) + - u"</li></ul>" + "<ul class='compact'><li>" + "</li><li>".join(items) + + "</li></ul>" )) ] @@ -497,7 +491,7 @@ class FormSet(CustomForm, BaseFormSet): if not error_msg: error_msg = _("There are identical items.") items = [] - for i in range(0, self.total_form_count()): + for i in range(self.total_form_count()): form = self.forms[i] if not form.is_valid(): continue @@ -586,7 +580,7 @@ class FormHeader(object): "<h{level}>{label}</h{level}>{help_message}".format( label=self.label, level=self.level, help_message=help_message)) - html = u"""<div id="collapse-parent-{slug}" class="collapse-form"> + html = """<div id="collapse-parent-{slug}" class="collapse-form"> <div class="card"> <div class="card-header" id="collapse-head-{slug}"> <h{level} href="#"> @@ -612,7 +606,7 @@ class FormHeader(object): def render_end(self): if not self.collapse: return "" - return mark_safe(u""" + return mark_safe(""" </div> </div> </div> @@ -865,10 +859,8 @@ class TableSelect(IshtarForm): if k == 'search_vector': cls += " search-vector" self.fields[k].widget.attrs['class'] = cls - if k in alt_names: - self.fields[k].alt_name = alt_names[k].search_key - else: - self.fields[k].alt_name = k + self.fields[k].alt_name = alt_names[k].search_key \ + if k in alt_names else k key = list(self.fields.keys())[0] self.fields[key].widget.attrs['autofocus'] = 'autofocus' @@ -878,13 +870,13 @@ class TableSelect(IshtarForm): class HistorySelect(CustomForm, TableSelect): history_creator = forms.IntegerField( - label=_(u"Created by"), + label=_("Created by"), widget=widgets.JQueryAutoComplete( reverse_lazy('autocomplete-user'), associated_model=User), required=False ) history_modifier = forms.IntegerField( - label=_(u"Last modified by"), + label=_("Last modified by"), widget=widgets.JQueryAutoComplete( reverse_lazy('autocomplete-user'), associated_model=User), required=False @@ -931,13 +923,12 @@ class DocumentItemSelect(HistorySelect): def get_now(): format = formats.get_format('DATE_INPUT_FORMATS')[0] - value = datetime.datetime.now().strftime(format) - return value + return datetime.datetime.now().strftime(format) class ClosingDateFormSelection(IshtarForm): form_label = _("Closing date") - end_date = DateField(label=_(u"Closing date")) + end_date = DateField(label=_("Closing date")) def __init__(self, *args, **kwargs): if 'initial' not in kwargs: @@ -953,8 +944,8 @@ def has_map(): def get_form_selection( class_name, label, key, model, base_form, get_url, - not_selected_error=_(u"You should select an item."), new=False, - new_message=_(u"Add a new item"), get_full_url=None, + not_selected_error=_("You should select an item."), new=False, + new_message=_("Add a new item"), get_full_url=None, gallery=False, map=False, multi=False, base_form_select=None, alt_pk_field=None ): @@ -1120,13 +1111,13 @@ class QAForm(CustomForm, ManageOldType): elif int(v) in list(dct_choices.keys()): values.append(str(dct_choices[int(v)])) self.fields[k].rendered_value = mark_safe( - u" ; ".join(values)) + " ; ".join(values)) if k not in self.REPLACE_FIELDS: self.fields[k].label = str(self.fields[k].label) + \ - str(_(u" - append to existing")) + str(_(" - append to existing")) else: self.fields[k].label = str(self.fields[k].label) + \ - str(_(u" - replace")) + str(_(" - replace")) def _set_value(self, item, base_key): value = self.cleaned_data[base_key] @@ -1143,19 +1134,15 @@ class QAForm(CustomForm, ManageOldType): if not isinstance(v, field.related_model): v = field.related_model.objects.get(pk=v) new_value.append(v) - if is_list: - value = new_value - else: - value = new_value[0] + value = new_value if is_list else new_value[0] if getattr(field, 'many_to_many', None): if type(value) not in (list, tuple): value = [value] for v in value: getattr(item, key).add(v) else: - if base_key not in self.REPLACE_FIELDS: - if getattr(item, key): - value = getattr(item, key) + u"\n" + value + if base_key not in self.REPLACE_FIELDS and getattr(item, key): + value = getattr(item, key) + "\n" + value setattr(item, key, value) def save(self, items, user): diff --git a/ishtar_common/forms_common.py b/ishtar_common/forms_common.py index 96a473c28..7224620e0 100644 --- a/ishtar_common/forms_common.py +++ b/ishtar_common/forms_common.py @@ -1872,9 +1872,9 @@ class QADocumentPackagingForm(IshtarForm): container_to_change = forms.ChoiceField( label=_("Change "), required=True, choices=( - ('current-and-reference', _(u"current and reference containers")), - ('reference', _(u"the reference container")), - ('current', _(u"the current container")), + ('current-and-reference', _("current and reference containers")), + ('reference', _("the reference container")), + ('current', _("the current container")), ) ) diff --git a/ishtar_common/ishtar_menu.py b/ishtar_common/ishtar_menu.py index 501177eb5..1e64a80f2 100644 --- a/ishtar_common/ishtar_menu.py +++ b/ishtar_common/ishtar_menu.py @@ -26,80 +26,80 @@ from . import models # be careful: each access_controls must be relevant with check_rights in urls MENU_SECTIONS = [ - (1, SectionItem('home', _(u"Home"), childs=[])), - (5, SectionItem('admin', _(u"Administration"), + (1, SectionItem('home', _("Home"), childs=[])), + (5, SectionItem('admin', _("Administration"), childs=[ SectionItem( - 'account', _(u"Account"), - childs=[MenuItem('account_management', _(u"Addition/modification"), + 'account', _("Account"), + childs=[MenuItem('account_management', _("Addition/modification"), model=models.IshtarUser, access_controls=['administrator', ]), - MenuItem('account_deletion', _(u"Deletion"), + MenuItem('account_deletion', _("Deletion"), model=models.IshtarUser, access_controls=['administrator', ]), ]), - MenuItem('admin-globalvar', _(u"Global variables"), + MenuItem('admin-globalvar', _("Global variables"), model=models.GlobalVar, access_controls=['administrator', ]), ]) ), - (10, SectionItem('administration', _(u"Directory"), + (10, SectionItem('administration', _("Directory"), childs=[ SectionItem( - 'person', _(u"Person"), + 'person', _("Person"), childs=[ MenuItem( - 'person_search', _(u"Search"), + 'person_search', _("Search"), model=models.Person, access_controls=['add_person']), MenuItem( - 'person_creation', _(u"Creation"), + 'person_creation', _("Creation"), model=models.Person, access_controls=['add_person']), MenuItem( - 'person_modification', _(u"Modification"), + 'person_modification', _("Modification"), model=models.Person, access_controls=['change_person', 'change_own_person']), MenuItem( - 'person-merge', _(u"Automatic merge"), + 'person-merge', _("Automatic merge"), model=models.Person, access_controls=['administrator']), MenuItem( - 'person-manual-merge', _(u"Manual merge"), + 'person-manual-merge', _("Manual merge"), model=models.Person, access_controls=['administrator']), MenuItem( - 'person_deletion', _(u"Deletion"), + 'person_deletion', _("Deletion"), model=models.Person, access_controls=['change_person', 'change_own_person']), ]), SectionItem( - 'organization', _(u"Organization"), + 'organization', _("Organization"), childs=[ MenuItem( - 'organization_search', _(u"Search"), + 'organization_search', _("Search"), model=models.Organization, access_controls=['add_organization', 'add_own_organization']), MenuItem( - 'organization_creation', _(u"Creation"), + 'organization_creation', _("Creation"), model=models.Organization, access_controls=['add_organization', 'add_own_organization']), MenuItem( - 'organization_modification', _(u"Modification"), + 'organization_modification', _("Modification"), model=models.Organization, access_controls=['change_organization', 'change_own_organization']), MenuItem( - 'organization-merge', _(u"Automatic merge"), + 'organization-merge', _("Automatic merge"), model=models.Organization, access_controls=['administrator']), MenuItem( - 'orga-manual-merge', _(u"Manual merge"), + 'orga-manual-merge', _("Manual merge"), model=models.Organization, access_controls=['administrator']), MenuItem( - 'organization_deletion', _(u"Deletion"), + 'organization_deletion', _("Deletion"), model=models.Organization, access_controls=['change_organization', 'change_own_organization']), @@ -107,41 +107,41 @@ MENU_SECTIONS = [ ]) ), (15, SectionItem( - 'imports', _(u"Imports"), + 'imports', _("Imports"), childs=[ MenuItem( - 'import-new', _(u"New import"), + 'import-new', _("New import"), model=models.Import, access_controls=['change_import']), MenuItem( - 'import-list', _(u"Current imports"), + 'import-list', _("Current imports"), model=models.Import, access_controls=['change_import']), MenuItem( - 'import-list-old', _(u"Old imports"), + 'import-list-old', _("Old imports"), model=models.Import, access_controls=['change_import']), ])), (250, SectionItem( - 'document', _(u"Documentation / Images"), + 'document', _("Documentation / Images"), childs=[ MenuItem('document/search', - _(u"Search"), + _("Search"), model=models.Document, access_controls=['view_document', 'view_own_document']), MenuItem('document/create', - _(u"Creation"), + _("Creation"), model=models.Document, access_controls=['add_document', 'add_own_document']), MenuItem('document/edit', - _(u"Modification"), + _("Modification"), model=models.Document, access_controls=['change_document', 'change_own_document']), MenuItem('document/delete', - _(u"Deletion"), + _("Deletion"), model=models.Document, access_controls=['change_document', 'change_own_document']), diff --git a/ishtar_common/management/commands/fix_missing_cached_labels.py b/ishtar_common/management/commands/fix_missing_cached_labels.py index 368d98fae..ad2767c56 100644 --- a/ishtar_common/management/commands/fix_missing_cached_labels.py +++ b/ishtar_common/management/commands/fix_missing_cached_labels.py @@ -52,7 +52,7 @@ class Command(BaseCommand): if limit and app != limit: continue if not quiet: - print(u"* app: {}".format(app)) + print("* app: {}".format(app)) for model in apps.get_app_config(app).get_models(): if model_name and model.__name__.lower() != model_name: continue @@ -79,14 +79,14 @@ class Command(BaseCommand): else: query |= subquery q = model.objects.filter(query) - msg = u"-> processing {}: ".format(model._meta.verbose_name) + msg = "-> processing {}: ".format(model._meta.verbose_name) ln = q.count() for idx, obj_id in enumerate(q.values('pk').all()): obj = model.objects.get(pk=obj_id['pk']) obj.skip_history_when_saving = True obj._no_move = True obj._no_geo_check = True - cmsg = u"\r{} {}/{}".format(msg, idx + 1, ln) + cmsg = "\r{} {}/{}".format(msg, idx + 1, ln) if not quiet: sys.stdout.write(cmsg) sys.stdout.flush() diff --git a/ishtar_common/management/commands/ishtar_import.py b/ishtar_common/management/commands/ishtar_import.py index a8c9d3736..011af2f8c 100644 --- a/ishtar_common/management/commands/ishtar_import.py +++ b/ishtar_common/management/commands/ishtar_import.py @@ -31,7 +31,7 @@ class Command(BaseCommand): "| name\n") self.stdout.write("*" * 80 + "\n") for imp in models.Import.objects.exclude(state="AC").all(): - self.stdout.write(u"|{: ^6}| {: ^32} | {: ^12} | {}\n".format( + self.stdout.write("|{: ^6}| {: ^32} | {: ^12} | {}\n".format( imp.pk, str(imp.importer_type)[:32], state[imp.state][:12], imp.name[:128])) diff --git a/ishtar_common/management/commands/process_pending_update.py b/ishtar_common/management/commands/process_pending_update.py index 6e97847cc..6feff38c3 100644 --- a/ishtar_common/management/commands/process_pending_update.py +++ b/ishtar_common/management/commands/process_pending_update.py @@ -42,7 +42,7 @@ class Command(BaseCommand): quiet = options['quiet'] for app in APPS: if not quiet: - print(u"* app: {}".format(app)) + print("* app: {}".format(app)) for model in apps.get_app_config(app).get_models(): if model.__name__.startswith('Historical'): continue @@ -50,14 +50,14 @@ class Command(BaseCommand): [True for k in model._meta.get_fields() if k.name == "need_update"]): continue - msg = u"-> processing {}: ".format(model._meta.verbose_name) + msg = "-> processing {}: ".format(model._meta.verbose_name) q = model.objects.filter(need_update=True) ln = q.count() for idx, obj_id in enumerate(q.values('pk').all()): obj = model.objects.get(pk=obj_id['pk']) obj.skip_history_when_saving = True obj._no_move = True - cmsg = u"\r{} {}/{}".format(msg, idx + 1, ln) + cmsg = "\r{} {}/{}".format(msg, idx + 1, ln) if not quiet: sys.stdout.write(cmsg) sys.stdout.flush() diff --git a/ishtar_common/management/commands/reassociate_similar_images.py b/ishtar_common/management/commands/reassociate_similar_images.py index 0dbb3a765..9e52bc6f6 100644 --- a/ishtar_common/management/commands/reassociate_similar_images.py +++ b/ishtar_common/management/commands/reassociate_similar_images.py @@ -127,9 +127,9 @@ class Command(BaseCommand): for attr in attributes: ref_value = getattr(ref_item, attr) other_value = getattr(item, attr) + if not other_value: + continue if ref_value: - if not other_value: - continue if other_value != ref_value: if attr == 'title' and merged_title: setattr(ref_item, 'title', merged_title) @@ -138,8 +138,6 @@ class Command(BaseCommand): (attr, ref_value, other_value) ) else: - if not other_value: - continue setattr(ref_item, attr, other_value) base_csv = [ @@ -184,11 +182,11 @@ class Command(BaseCommand): item.delete() nb_merged_items += 1 if not quiet: - out.write(u"\n") + out.write("\n") n = datetime.datetime.now().isoformat().split('.')[0].replace(':', '-') if conflicts: - filename = output_path + u"{}-conflict.csv".format(n) + filename = output_path + "{}-conflict.csv".format(n) with open(filename, 'w') as csvfile: writer = csv.writer(csvfile) writer.writerow( @@ -202,10 +200,10 @@ class Command(BaseCommand): for conflict in conflicts: writer.writerow(conflict) if not quiet: - out.write(u"* {} conflicted items ({})\n".format( + out.write("* {} conflicted items ({})\n".format( nb_conflicted_items, filename)) if merged: - filename = output_path + u"{}-merged.csv".format(n) + filename = output_path + "{}-merged.csv".format(n) with open(filename, 'w') as csvfile: writer = csv.writer(csvfile) writer.writerow( @@ -218,7 +216,7 @@ class Command(BaseCommand): for merge in merged: writer.writerow(merge) if not quiet: - out.write(u"* {} merged items ({})\n".format(nb_merged_items, + out.write("* {} merged items ({})\n".format(nb_merged_items, filename)) if not quiet: out.write("* {} distinct images\n".format(distinct_image)) diff --git a/ishtar_common/management/commands/regenerate_external_id.py b/ishtar_common/management/commands/regenerate_external_id.py index b64629386..5d1aad88e 100644 --- a/ishtar_common/management/commands/regenerate_external_id.py +++ b/ishtar_common/management/commands/regenerate_external_id.py @@ -51,14 +51,14 @@ class Command(BaseCommand): if not bool( [k for k in dir(model) if k == "external_id"]): continue - msg = u"* processing {} - {}:".format( + msg = "* processing {} - {}:".format( app, model._meta.verbose_name) ln = model.objects.count() for idx, object in enumerate(model.objects.all()): object.skip_history_when_saving = True object.external_id = None object._no_move = True - cmsg = u"\r{} {}/{}".format(msg, idx + 1, ln) + cmsg = "\r{} {}/{}".format(msg, idx + 1, ln) sys.stdout.write(cmsg) sys.stdout.flush() object.save() diff --git a/ishtar_common/management/commands/regenerate_qrcodes.py b/ishtar_common/management/commands/regenerate_qrcodes.py index 6c1ed8ecc..d915d2e21 100644 --- a/ishtar_common/management/commands/regenerate_qrcodes.py +++ b/ishtar_common/management/commands/regenerate_qrcodes.py @@ -54,7 +54,7 @@ class Command(BaseCommand): for app in APPS: if limit and app != limit: continue - print(u"* app: {}".format(app)) + print("* app: {}".format(app)) for model in apps.get_app_config(app).get_models(): if model_name and model.__name__.lower() != model_name: continue @@ -64,13 +64,13 @@ class Command(BaseCommand): model._meta.get_field('qrcode') except FieldDoesNotExist: continue - msg = u"-> processing {}: ".format(model._meta.verbose_name) + msg = "-> processing {}: ".format(model._meta.verbose_name) ln = model.objects.count() tmpdir = tempfile.mkdtemp("-qrcode") for idx, object in enumerate(model.objects.all()): object.skip_history_when_saving = True object._no_move = True - cmsg = u"\r{} {}/{}".format(msg, idx + 1, ln) + cmsg = "\r{} {}/{}".format(msg, idx + 1, ln) sys.stdout.write(cmsg) sys.stdout.flush() object.generate_qrcode(secure=secure, tmpdir=tmpdir) diff --git a/ishtar_common/management/commands/regenerate_search_vector_cached_label.py b/ishtar_common/management/commands/regenerate_search_vector_cached_label.py index 6a560df80..ab7f134ff 100644 --- a/ishtar_common/management/commands/regenerate_search_vector_cached_label.py +++ b/ishtar_common/management/commands/regenerate_search_vector_cached_label.py @@ -51,7 +51,7 @@ class Command(BaseCommand): if limit and app != limit: continue if not quiet: - print(u"* app: {}".format(app)) + print("* app: {}".format(app)) for model in apps.get_app_config(app).get_models(): if model_name and model.__name__.lower() != model_name: continue @@ -62,7 +62,7 @@ class Command(BaseCommand): if k.startswith('_generate_') or k == "search_vector"]): continue - msg = u"-> processing {}: ".format(model._meta.verbose_name) + msg = "-> processing {}: ".format(model._meta.verbose_name) ln = model.objects.count() for idx, obj_id in enumerate(model.objects.values('pk').all()): obj = model.objects.get(pk=obj_id['pk']) @@ -74,7 +74,7 @@ class Command(BaseCommand): obj.point_2d = None obj.x = None obj.y = None - cmsg = u"\r{} {}/{}".format(msg, idx + 1, ln) + cmsg = "\r{} {}/{}".format(msg, idx + 1, ln) if not quiet: sys.stdout.write(cmsg) sys.stdout.flush() diff --git a/ishtar_common/models.py b/ishtar_common/models.py index 79fa8f6c0..bf8c8c19c 100644 --- a/ishtar_common/models.py +++ b/ishtar_common/models.py @@ -197,7 +197,7 @@ class ValueGetter(object): val = '' elif (key in self.GET_VALUES_EXTRA_TYPES or "type" in key) and ( val.__class__.__name__.split('.')[0] == 'ManyRelatedManager'): - val = " ; ".join([str(v) for v in val.all()]) + val = " ; ".join(str(v) for v in val.all()) elif not isinstance(val, (tuple, list, dict)): val = str(val) if val.endswith('.None'): @@ -219,10 +219,7 @@ class ValueGetter(object): def get_empty_values(cls, prefix=''): if not prefix: prefix = cls._prefix - values = {} - for field_name in get_all_field_names(cls): - values[prefix + field_name] = '' - return values + return {prefix + field_name: '' for field_name in get_all_field_names(cls)} class HistoryModel(models.Model): @@ -296,7 +293,7 @@ class TinyUrl(models.Model): @classmethod def index_to_char(cls, seq): - return "".join([cls.CHAR_MAP[x] for x in seq]) + return "".join(cls.CHAR_MAP[x] for x in seq) def get_short_id(self): c_id = self.id @@ -348,7 +345,7 @@ class ImageModel(models.Model, ImageContainerModel): return True manager = getattr(self.__class__, 'objects') old = getattr(manager.get(pk=self.pk), field) - return not getattr(self, field) == old + return getattr(self, field) != old def create_thumb(self, image, size): """Returns the image resized to fit inside a box of the given size""" @@ -2211,13 +2208,13 @@ class Person(Address, Merge, OwnPerms, ValueGetter, MainItem): @property def person_types_list(self): - return ", ".join([str(pt) for pt in self.person_types.all()]) + return ", ".join(str(pt) for pt in self.person_types.all()) profiles_list_lbl = _("Profiles") @property def profiles_list(self): - return ", ".join([str(p) for p in self.profiles.all()]) + return ", ".join(str(p) for p in self.profiles.all()) def generate_merge_key(self): if self.name and self.name.strip(): @@ -2389,8 +2386,7 @@ class UserProfile(models.Model): lbl = self.name or str(self.profile_type) if not self.areas.count(): return lbl - return "{} ({})".format(lbl, ", ".join( - [str(area) for area in self.areas.all()])) + return "{} ({})".format(lbl, ", ".join(str(area) for area in self.areas.all())) @property def query_towns(self): @@ -2403,7 +2399,7 @@ class UserProfile(models.Model): @property def area_labels(self): - return ", ".join([str(area) for area in self.areas.all()]) + return ", ".join(str(area) for area in self.areas.all()) def duplicate(self, **kwargs): areas = [area for area in self.areas.all()] @@ -2574,8 +2570,7 @@ class IshtarUser(FullSearch): person = Person.objects.create(surname=surname, name=name, email=email, history_modifier=user) - isht_user = cls.objects.create(user_ptr=user, person=person) - return isht_user + return cls.objects.create(user_ptr=user, person=person) def has_right(self, right_name, session=None): return self.person.has_right(right_name, session=session) @@ -2685,13 +2680,11 @@ class Basket(FullSearch, OwnPerms, ValueGetter, TemplateItem): :param ishtaruser: if provided an alternate user is used :return: the new basket """ - items = [] through = self.items.through basket_pk = "{}_id".format(self.SLUG) item_pk = "{}_id".format(self.items.model.SLUG) q = through.objects.filter(**{basket_pk: self.pk}) - for r in q.values("pk", item_pk).order_by("pk").all(): - items.append(r[item_pk]) + items = [r[item_pk] for r in q.values("pk", item_pk).order_by("pk").all()] new_item = self new_item.pk = None if ishtaruser: @@ -3693,7 +3686,7 @@ class Document(BaseHistorizedItem, CompleteIdentifierItem, OwnPerms, ImageModel, "content": self.creation_date.strftime("%Y-%m-%d")} tags.append(("meta", date)) if self.tags.count(): - content = ", ".join([str(t) for t in self.tags.all()]) + content = ", ".join(str(t) for t in self.tags.all()) tg = {"name": "DC.subject", "content": content} tags.append(("meta", tg)) if self.description: @@ -3705,8 +3698,8 @@ class Document(BaseHistorizedItem, CompleteIdentifierItem, OwnPerms, ImageModel, ("meta", {"name": "DC.publisher", "content": self.publisher.name})) if self.authors.count(): - content = ", ".join([str(t.person.raw_name) for t in - self.authors.all()]) + content = ", ".join(str(t.person.raw_name) for t in + self.authors.all()) tags.append( ("meta", {"name": "DC.creator", "content": content})) @@ -3729,7 +3722,7 @@ class Document(BaseHistorizedItem, CompleteIdentifierItem, OwnPerms, ImageModel, ("meta", {"name": "DC.language", "content": lang})) if self.licenses.count(): - licences = ", ".join([str(l) for l in self.licenses.all()]) + licences = ", ".join(str(l) for l in self.licenses.all()) tags.append( ("meta", {"name": "DC.rights", "content": licences})) @@ -3806,7 +3799,7 @@ class Document(BaseHistorizedItem, CompleteIdentifierItem, OwnPerms, ImageModel, if self.isbn: info.append(("rft.isbn", self.isbn)) if self.licenses.count(): - licenses = ";".join([str(l) for l in self.licenses.all()]) + licenses = ";".join(str(l) for l in self.licenses.all()) info.append(("rft.rights", licenses)) if self.language: info.append(("rft.language", self.language.iso_code)) |