diff options
author | Étienne Loks <etienne.loks@proxience.com> | 2015-09-21 23:28:36 +0200 |
---|---|---|
committer | Étienne Loks <etienne.loks@proxience.com> | 2015-09-21 23:28:36 +0200 |
commit | a23307e29cc5a4f0c6ad03aa300b0c07a680751b (patch) | |
tree | 53df01f8bdeeab4aa94e081a381c2939962f0d66 | |
parent | de51f7b9be16bbc260ea73cdaaef406976c5a8da (diff) | |
download | Ishtar-a23307e29cc5a4f0c6ad03aa300b0c07a680751b.tar.bz2 Ishtar-a23307e29cc5a4f0c6ad03aa300b0c07a680751b.zip |
Flake8
-rw-r--r-- | archaeological_context_records/admin.py | 6 | ||||
-rw-r--r-- | archaeological_context_records/data_importer.py | 36 | ||||
-rw-r--r-- | archaeological_context_records/ishtar_menu.py | 78 | ||||
-rw-r--r-- | archaeological_context_records/tests.py | 64 | ||||
-rw-r--r-- | archaeological_context_records/urls.py | 72 | ||||
-rw-r--r-- | archaeological_context_records/views.py | 48 | ||||
-rw-r--r-- | archaeological_context_records/wizards.py | 22 |
7 files changed, 171 insertions, 155 deletions
diff --git a/archaeological_context_records/admin.py b/archaeological_context_records/admin.py index ca30b94d6..acbf61ead 100644 --- a/archaeological_context_records/admin.py +++ b/archaeological_context_records/admin.py @@ -17,13 +17,13 @@ # See the file COPYING for details. -from django.conf import settings from django.contrib import admin from ishtar_common.admin import HistorizedObjectAdmin, GeneralTypeAdmin import models + class DatingAdmin(admin.ModelAdmin): list_display = ('period', 'start_date', 'end_date', 'dating_type', 'quality') @@ -32,6 +32,7 @@ class DatingAdmin(admin.ModelAdmin): admin.site.register(models.Dating, DatingAdmin) + class ContextRecordAdmin(HistorizedObjectAdmin): list_display = ('label', 'length', 'width', 'thickness', 'depth') @@ -41,6 +42,7 @@ class ContextRecordAdmin(HistorizedObjectAdmin): admin.site.register(models.ContextRecord, ContextRecordAdmin) + class ContextRecordSourceAdmin(admin.ModelAdmin): list_display = ('context_record', 'title', 'source_type',) list_filter = ('source_type',) @@ -49,12 +51,14 @@ class ContextRecordSourceAdmin(admin.ModelAdmin): admin.site.register(models.ContextRecordSource, ContextRecordSourceAdmin) + class RecordRelationsAdmin(admin.ModelAdmin): list_display = ('left_record', 'relation_type', 'right_record') list_filter = ('relation_type',) admin.site.register(models.RecordRelations, RecordRelationsAdmin) + class RelationTypeAdmin(admin.ModelAdmin): list_display = ('label', 'txt_idx', 'available', 'symmetrical', 'inverse_relation') diff --git a/archaeological_context_records/data_importer.py b/archaeological_context_records/data_importer.py index 8c5df2ddf..ce2185f7a 100644 --- a/archaeological_context_records/data_importer.py +++ b/archaeological_context_records/data_importer.py @@ -17,35 +17,35 @@ # See the file COPYING for details. -import re - -from django.utils.translation import ugettext_lazy as _ - from ishtar_common.data_importer import * from archaeological_context_records import models + class ContextRecordsImporterBibracte(Importer): DESC = u"Exports Bibracte : importeur pour l'onglet UE" OBJECT_CLS = models.ContextRecord - DEFAULTS = { - } + DEFAULTS = {} LINE_FORMAT = [ # ID operation ImportFormater('operation__operation_code', IntegerFormater(), - duplicate_fields=['parcel__operation__operation_code'],), + duplicate_fields=['parcel__operation__operation_code']), # ID UE - ImportFormater('external_id', UnicodeFormater(120), duplicate_fields=['label'],), + ImportFormater('external_id', UnicodeFormater(120), + duplicate_fields=['label'],), # Type ImportFormater('unit', TypeFormater(models.Unit), required=False), # description ImportFormater('description', UnicodeFormater(1000), required=False,), # interprétation - ImportFormater('interpretation', UnicodeFormater(1000), required=False,), - # date ouverture - ImportFormater('opening_date', DateFormater(['%Y/%m/%d']), required=False,), - # date fermeture - ImportFormater('closing_date', DateFormater(['%Y/%m/%d']), required=False,), + ImportFormater('interpretation', UnicodeFormater(1000), + required=False,), + # date ouverture + ImportFormater('opening_date', DateFormater(['%Y/%m/%d']), + required=False,), + # date fermeture + ImportFormater('closing_date', DateFormater(['%Y/%m/%d']), + required=False,), # lien vers parcelle ImportFormater('parcel__external_id', UnicodeFormater(12), required=False,), @@ -58,18 +58,19 @@ class ContextRecordsImporterBibracte(Importer): # chrono #TODO! pas de vrai création de nouvelle et en cas de modif # c'est la zone ImportFormater('datings__period', TypeFormater(models.Period), - required=False), + required=False), ] + class ContextRecordsRelationImporterBibracte(Importer): DESC = u"Exports Bibracte : importeur pour l'onglet relations entre UE" OBJECT_CLS = models.RecordRelations DEFAULTS = {} LINE_FORMAT = [ # code OA - ImportFormater('left_record__operation__operation_code', - IntegerFormater(), - duplicate_fields=['right_record__operation__operation_code'],), + ImportFormater( + 'left_record__operation__operation_code', IntegerFormater(), + duplicate_fields=['right_record__operation__operation_code'],), # identifiant UE 1 ImportFormater('left_record__external_id', UnicodeFormater(120),), # type relation @@ -77,4 +78,3 @@ class ContextRecordsRelationImporterBibracte(Importer): # identifiant UE 2 ImportFormater('right_record__external_id', UnicodeFormater(120),), ] - diff --git a/archaeological_context_records/ishtar_menu.py b/archaeological_context_records/ishtar_menu.py index c471a75a8..49f92ad89 100644 --- a/archaeological_context_records/ishtar_menu.py +++ b/archaeological_context_records/ishtar_menu.py @@ -19,49 +19,49 @@ from django.utils.translation import ugettext_lazy as _ -from archaeological_operations.models import Operation from ishtar_common.menu_base import SectionItem, MenuItem import models MENU_SECTIONS = [ (40, SectionItem('record_management', _(u"Context record"), - childs=[ - MenuItem('record_search', _(u"Search"), - model=models.ContextRecord, - access_controls=['view_contextrecord', - 'view_own_contextrecord']), - MenuItem('record_creation', _(u"Creation"), - model=models.ContextRecord, - access_controls=['add_contextrecord', - 'add_own_contextrecord']), - MenuItem('record_modification', _(u"Modification"), - model=models.ContextRecord, - access_controls=['change_contextrecord', - 'change_own_contextrecord']), - MenuItem('record_deletion', _(u"Deletion"), - model=models.ContextRecord, - access_controls=['delete_contextrecord', - 'delete_own_contextrecord']), - SectionItem('record_source', _(u"Documentation"), - childs=[ - MenuItem('record_source_creation', - _(u"Add"), - model=models.ContextRecordSource, - access_controls=['change_contextrecord', - 'change_own_contextrecord']), - MenuItem('record_source_modification', - _(u"Modification"), - model=models.ContextRecordSource, - access_controls=['change_contextrecord', - 'change_own_contextrecord']), - MenuItem('record_source_deletion', - _(u"Deletion"), - model=models.ContextRecordSource, - access_controls=['change_contextrecord', - 'change_own_contextrecord']), - ]) - ]) - ) + childs=[MenuItem('record_search', _(u"Search"), + model=models.ContextRecord, + access_controls=['view_contextrecord', + 'view_own_contextrecord']), + MenuItem('record_creation', _(u"Creation"), + model=models.ContextRecord, + access_controls=['add_contextrecord', + 'add_own_contextrecord']), + MenuItem('record_modification', _(u"Modification"), + model=models.ContextRecord, + access_controls=['change_contextrecord', + 'change_own_contextrecord']), + MenuItem('record_deletion', _(u"Deletion"), + model=models.ContextRecord, + access_controls=['delete_contextrecord', + 'delete_own_contextrecord']), + SectionItem('record_source', _(u"Documentation"), + childs=[ + MenuItem('record_source_creation', + _(u"Add"), + model=models.ContextRecordSource, + access_controls=[ + 'change_contextrecord', + 'change_own_contextrecord']), + MenuItem('record_source_modification', + _(u"Modification"), + model=models.ContextRecordSource, + access_controls=[ + 'change_contextrecord', + 'change_own_contextrecord']), + MenuItem('record_source_deletion', + _(u"Deletion"), + model=models.ContextRecordSource, + access_controls=[ + 'change_contextrecord', + 'change_own_contextrecord']), + ]) + ]) + ) ] - diff --git a/archaeological_context_records/tests.py b/archaeological_context_records/tests.py index 00854ad7c..bccd859aa 100644 --- a/archaeological_context_records/tests.py +++ b/archaeological_context_records/tests.py @@ -20,7 +20,6 @@ """ Unit tests """ -import json from django.conf import settings from django.core.exceptions import ValidationError @@ -29,11 +28,11 @@ from django.test import TestCase from ishtar_common.models import ImporterType from archaeological_operations.tests import OperationInitTest, \ - ImportOperationTest -from archaeological_operations.models import Parcel + ImportOperationTest from archaeological_context_records import models from ishtar_common import forms_common + class ImportContextRecordTest(ImportOperationTest): test_operations = False test_context_records = True @@ -50,13 +49,14 @@ class ImportContextRecordTest(ImportOperationTest): old_nb = models.ContextRecord.objects.count() MCC = ImporterType.objects.get(name=u"MCC - UE") - mcc_file = open(settings.ROOT_PATH + \ - '../archaeological_context_records/tests/'\ - 'MCC-context-records-example.csv', 'rb') + mcc_file = open( + settings.ROOT_PATH + + '../archaeological_context_records/tests/' + 'MCC-context-records-example.csv', 'rb') file_dict = {'imported_file': SimpleUploadedFile(mcc_file.name, mcc_file.read())} - post_dict = {'importer_type':MCC.pk, 'skip_lines':1, - "encoding":'utf-8'} + post_dict = {'importer_type': MCC.pk, 'skip_lines': 1, + "encoding": 'utf-8'} form = forms_common.NewImportForm(data=post_dict, files=file_dict, instance=None) form.is_valid() @@ -91,7 +91,7 @@ class ContextRecordInit(OperationInitTest): if not getattr(self, 'context_records', None): self.context_records = [] - default = {'label':"Context record"} + default = {'label': "Context record"} if not data.get('operation'): data['operation'] = self.get_default_operation() if not data.get('parcel'): @@ -101,12 +101,13 @@ class ContextRecordInit(OperationInitTest): default.update(data) self.context_records.append(models.ContextRecord.objects.create( - **default)) + **default)) return self.context_records def get_default_context_record(self): return self.create_context_record()[0] + class RecordRelationsTest(TestCase, ContextRecordInit): fixtures = [settings.ROOT_PATH + '../fixtures/initial_data.json', @@ -120,22 +121,22 @@ class RecordRelationsTest(TestCase, ContextRecordInit): def setUp(self): # two different context records - self.create_context_record({"label":u"CR 1"}) - self.create_context_record({"label":u"CR 2"}) + self.create_context_record({"label": u"CR 1"}) + self.create_context_record({"label": u"CR 2"}) def testRelations(self): - sym_rel_type = models.RelationType.objects.create(symmetrical=True, - txt_idx='sym') - rel_type_1 = models.RelationType.objects.create(symmetrical=False, - txt_idx='rel_1') + sym_rel_type = models.RelationType.objects.create( + symmetrical=True, txt_idx='sym') + rel_type_1 = models.RelationType.objects.create( + symmetrical=False, txt_idx='rel_1') # cannot be symmetrical and have an inverse_relation with self.assertRaises(ValidationError): - rel_test = models.RelationType.objects.create(symmetrical=True, - inverse_relation=rel_type_1, txt_idx='rel_3') + rel_test = models.RelationType.objects.create( + symmetrical=True, inverse_relation=rel_type_1, txt_idx='rel_3') rel_test.full_clean() # auto fill inverse relations - rel_type_2 = models.RelationType.objects.create(symmetrical=False, - inverse_relation=rel_type_1, txt_idx='rel_2') + rel_type_2 = models.RelationType.objects.create( + symmetrical=False, inverse_relation=rel_type_1, txt_idx='rel_2') self.assertEqual(rel_type_1.inverse_relation, rel_type_2) cr_1 = self.context_records[0] @@ -143,19 +144,22 @@ class RecordRelationsTest(TestCase, ContextRecordInit): # inserting a new symmetrical relation automatically creates the same # relation for the second context record - rel = models.RecordRelations.objects.create(left_record=cr_1, - right_record=cr_2, relation_type=sym_rel_type) - self.assertEqual(models.RecordRelations.objects.filter(left_record=cr_2, - right_record=cr_1, relation_type=sym_rel_type).count(), 1) + rel = models.RecordRelations.objects.create( + left_record=cr_1, right_record=cr_2, relation_type=sym_rel_type) + self.assertEqual(models.RecordRelations.objects.filter( + left_record=cr_2, right_record=cr_1, + relation_type=sym_rel_type).count(), 1) # removing one symmetrical relation removes the other rel.delete() - self.assertEqual(models.RecordRelations.objects.filter(left_record=cr_2, - right_record=cr_1, relation_type=sym_rel_type).count(), 0) + self.assertEqual(models.RecordRelations.objects.filter( + left_record=cr_2, right_record=cr_1, + relation_type=sym_rel_type).count(), 0) # for non-symmetrical relation, adding one relation automatically # adds the inverse - rel = models.RecordRelations.objects.create(left_record=cr_1, - right_record=cr_2, relation_type=rel_type_1) - self.assertEqual(models.RecordRelations.objects.filter(left_record=cr_2, - right_record=cr_1, relation_type=rel_type_2).count(), 1) + rel = models.RecordRelations.objects.create( + left_record=cr_1, right_record=cr_2, relation_type=rel_type_1) + self.assertEqual(models.RecordRelations.objects.filter( + left_record=cr_2, right_record=cr_1, + relation_type=rel_type_2).count(), 1) diff --git a/archaeological_context_records/urls.py b/archaeological_context_records/urls.py index 7d288b031..7e7adb937 100644 --- a/archaeological_context_records/urls.py +++ b/archaeological_context_records/urls.py @@ -21,41 +21,43 @@ from django.conf.urls.defaults import * import views # forms -urlpatterns = patterns('', - # Context records - url(r'record_search/(?P<step>.+)?$', - views.record_search_wizard, name='record_search'), - url(r'record_creation/(?P<step>.+)?$', - views.record_creation_wizard, name='record_creation'), - url(r'record_modification/(?P<step>.+)?$', - views.record_modification_wizard, name='record_modification'), - url(r'record_modify/(?P<pk>.+)/$', - views.record_modify, name='record_modify'), - url(r'record_deletion/(?P<step>.+)?$', - views.record_deletion_wizard, name='record_deletion'), - url(r'record_source_creation/(?P<step>.+)?$', - views.record_source_creation_wizard, - name='record_source_creation'), - url(r'record_source_modification/(?P<step>.+)?$', - views.record_source_modification_wizard, - name='record_source_modification'), - url(r'record_source_deletion/(?P<step>.+)?$', - views.record_source_deletion_wizard, - name='record_source_deletion'), +urlpatterns = patterns( + '', + # Context records + url(r'record_search/(?P<step>.+)?$', + views.record_search_wizard, name='record_search'), + url(r'record_creation/(?P<step>.+)?$', + views.record_creation_wizard, name='record_creation'), + url(r'record_modification/(?P<step>.+)?$', + views.record_modification_wizard, name='record_modification'), + url(r'record_modify/(?P<pk>.+)/$', + views.record_modify, name='record_modify'), + url(r'record_deletion/(?P<step>.+)?$', + views.record_deletion_wizard, name='record_deletion'), + url(r'record_source_creation/(?P<step>.+)?$', + views.record_source_creation_wizard, + name='record_source_creation'), + url(r'record_source_modification/(?P<step>.+)?$', + views.record_source_modification_wizard, + name='record_source_modification'), + url(r'record_source_deletion/(?P<step>.+)?$', + views.record_source_deletion_wizard, + name='record_source_deletion'), ) -urlpatterns += patterns('archaeological_context_records.views', - url(r'show-contextrecord(?:/(?P<pk>.+))?/(?P<type>.+)?$', - 'show_contextrecord', name='show-contextrecord'), - url(r'show-historized-contextrecord/(?P<pk>.+)?/(?P<date>.+)?$', - 'show_contextrecord', name='show-historized-contextrecord'), - url(r'revert-contextrecord/(?P<pk>.+)/(?P<date>.+)$', - 'revert_contextrecord', name='revert-contextrecord'), - url(r'get-contextrecord/(?P<type>.+)?$', 'get_contextrecord', - name='get-contextrecord'), - url(r'get-contextrecord-full/(?P<type>.+)?$', - 'get_contextrecord', name='get-contextrecord-full', - kwargs={'full':True}), - url(r'get-contexrecordsource/(?P<type>.+)?$', - 'get_contextrecordsource', name='get-contextrecordsource'), +urlpatterns += patterns( + 'archaeological_context_records.views', + url(r'show-contextrecord(?:/(?P<pk>.+))?/(?P<type>.+)?$', + 'show_contextrecord', name='show-contextrecord'), + url(r'show-historized-contextrecord/(?P<pk>.+)?/(?P<date>.+)?$', + 'show_contextrecord', name='show-historized-contextrecord'), + url(r'revert-contextrecord/(?P<pk>.+)/(?P<date>.+)$', + 'revert_contextrecord', name='revert-contextrecord'), + url(r'get-contextrecord/(?P<type>.+)?$', 'get_contextrecord', + name='get-contextrecord'), + url(r'get-contextrecord-full/(?P<type>.+)?$', + 'get_contextrecord', name='get-contextrecord-full', + kwargs={'full': True}), + url(r'get-contexrecordsource/(?P<type>.+)?$', + 'get_contextrecordsource', name='get-contextrecordsource'), ) diff --git a/archaeological_context_records/views.py b/archaeological_context_records/views.py index 526f5aca6..d92e162c3 100644 --- a/archaeological_context_records/views.py +++ b/archaeological_context_records/views.py @@ -30,24 +30,28 @@ import models show_contextrecord = show_item(models.ContextRecord, 'contextrecord') revert_contextrecord = revert_item(models.ContextRecord) -get_contextrecord = get_item(models.ContextRecord, - 'get_contextrecord', 'contextrecord', - extra_request_keys={'parcel__town':'parcel__town__pk', - 'operation__year':'operation__year__contains', - 'operation__code_patriarche':'operation__code_patriarche', - 'operation__operation_code':'operation__operation_code', - 'datings__period':'datings__period__pk', - 'parcel_0':'operation__parcels__section', - 'parcel_1':'operation__parcels__parcel_number', - 'label':'label__icontains' - },) -get_contextrecordsource = get_item(models.ContextRecordSource, - 'get_contextrecordsource', 'contextrecordsource', - extra_request_keys={ - 'context_record__parcel__town':'context_record__parcel__town__pk', - 'context_record__operation__year':'context_record__operation__year', - 'context_record__datings__period':'context_record__datings__period__pk', - 'context_record__unit':'context_record__unit__pk', +get_contextrecord = get_item( + models.ContextRecord, + 'get_contextrecord', 'contextrecord', + extra_request_keys={ + 'parcel__town': 'parcel__town__pk', + 'operation__year': 'operation__year__contains', + 'operation__code_patriarche': 'operation__code_patriarche', + 'operation__operation_code': 'operation__operation_code', + 'datings__period': 'datings__period__pk', + 'parcel_0': 'operation__parcels__section', + 'parcel_1': 'operation__parcels__parcel_number', + 'label': 'label__icontains' + },) +get_contextrecordsource = get_item( + models.ContextRecordSource, + 'get_contextrecordsource', 'contextrecordsource', + extra_request_keys={ + 'context_record__parcel__town': 'context_record__parcel__town__pk', + 'context_record__operation__year': 'context_record__operation__year', + 'context_record__datings__period': + 'context_record__datings__period__pk', + 'context_record__unit': 'context_record__unit__pk', }) record_search_wizard = SearchWizard.as_view([ @@ -73,12 +77,13 @@ record_modification_wizard = RecordModifWizard.as_view([ label=_(u"Context record modification"), url_name='record_modification',) + def record_modify(request, pk): - view = record_modification_wizard(request) + record_modification_wizard(request) RecordModifWizard.session_set_value( - request, 'selec-record_modification', 'pk', pk, reset=True) + request, 'selec-record_modification', 'pk', pk, reset=True) return redirect(reverse('record_modification', - kwargs={'step':'general-record_modification'})) + kwargs={'step': 'general-record_modification'})) record_deletion_wizard = RecordDeletionWizard.as_view([ ('selec-record_deletion', RecordFormSelection), @@ -107,4 +112,3 @@ record_source_deletion_wizard = RecordSourceDeletionWizard.as_view([ ('final-record_source_deletion', RecordDeletionForm)], label=_(u"Context record: source deletion"), url_name='record_source_deletion',) - diff --git a/archaeological_context_records/wizards.py b/archaeological_context_records/wizards.py index cd48d1308..a51809d32 100644 --- a/archaeological_context_records/wizards.py +++ b/archaeological_context_records/wizards.py @@ -17,16 +17,14 @@ # See the file COPYING for details. -from django.conf import settings from django.core.exceptions import ObjectDoesNotExist -from django.shortcuts import render_to_response -from django.template import RequestContext from django.utils.translation import ugettext_lazy as _ from ishtar_common.forms import reverse_lazy from ishtar_common.wizards import Wizard, DeletionWizard, SourceWizard import models + class RecordWizard(Wizard): model = models.ContextRecord edit = False @@ -37,10 +35,11 @@ class RecordWizard(Wizard): if not step: return # manage manualy on creation - if step.endswith('_creation'): # an operation has been selected + if step.endswith('_creation'): # an operation has been selected main_form_key = 'selec-' + self.url_name try: - idx = int(self.session_get_value(main_form_key, 'operation_id')) + idx = int(self.session_get_value( + main_form_key, 'operation_id')) current_ope = models.Operation.objects.get(pk=idx) return current_ope except(TypeError, ValueError, ObjectDoesNotExist): @@ -71,12 +70,12 @@ class RecordWizard(Wizard): data = {} if not step: step = self.steps.current - #step = self.determine_step(request, storage) + # step = self.determine_step(request, storage) form = self.get_form_list()[step] - general_form_key = 'general-' + self.url_name + # general_form_key = 'general-' + self.url_name if step.startswith('general-'): - if step.endswith('_creation'): # an operation has been selected + if step.endswith('_creation'): # an operation has been selected main_form_key = 'selec-' + self.url_name try: idx = int(self.session_get_value(main_form_key, @@ -91,10 +90,12 @@ class RecordWizard(Wizard): form = super(RecordWizard, self).get_form(step, data, files) return form + class RecordModifWizard(RecordWizard): modification = True model = models.ContextRecord + class RecordDeletionWizard(DeletionWizard): model = models.ContextRecord fields = ['label', 'parcel', 'description', 'length', 'width', 'thickness', @@ -102,10 +103,11 @@ class RecordDeletionWizard(DeletionWizard): 'filling', 'interpretation', 'taq', 'taq_estimated', 'tpq', 'tpq_estimated'] + class RecordSourceWizard(SourceWizard): model = models.ContextRecordSource + class RecordSourceDeletionWizard(DeletionWizard): model = models.ContextRecordSource - fields = ['context_record', 'title', 'source_type', 'authors',] - + fields = ['context_record', 'title', 'source_type', 'authors', ] |