summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ishtar/ishtar_base/forms_context_records.py64
-rw-r--r--ishtar/ishtar_base/urls.py84
2 files changed, 111 insertions, 37 deletions
diff --git a/ishtar/ishtar_base/forms_context_records.py b/ishtar/ishtar_base/forms_context_records.py
index 07990ee43..b40f5ae80 100644
--- a/ishtar/ishtar_base/forms_context_records.py
+++ b/ishtar/ishtar_base/forms_context_records.py
@@ -116,6 +116,14 @@ class RecordSelect(forms.Form):
choices=models.Period.get_types())
unit = forms.ChoiceField(label=_("Unit type"),
choices=models.Unit.get_types())
+ def __init__(self, *args, **kwargs):
+ super(RecordSelect, self).__init__(*args, **kwargs)
+ self.fields['datings__period'].choices = \
+ models.Period.get_types()
+ self.fields['datings__period'].help_text = \
+ models.Period.get_help()
+ self.fields['unit'].choices = models.Unit.get_types()
+ self.fields['unit'].help_text = models.Unit.get_help()
class RecordFormSelection(forms.Form):
form_label = _("Context record search")
@@ -286,4 +294,60 @@ record_deletion_wizard = RecordDeletionWizard([
('final-record_deletion', RecordDeletionForm)],
url_name='record_deletion',)
+#########################################
+# Source management for context records #
+#########################################
+
+class RecordSourceWizard(SourceWizard):
+ model = models.ContextRecordSource
+
+SourceRecordFormSelection = get_form_selection(
+ 'SourceRecordFormSelection', _(u"Context record search"),
+ 'context_record', models.ContextRecord, RecordSelect, 'get-contextrecord',
+ _(u"You should select a context record."))
+
+record_source_creation_wizard = RecordSourceWizard([
+ ('selec-record_source_creation', SourceRecordFormSelection),
+ ('source-record_source_creation', SourceForm),
+ ('authors-record_source_creation', AuthorFormset),
+ ('final-record_source_creation', FinalForm)],
+ url_name='record_source_creation',)
+
+class RecordSourceSelect(SourceSelect):
+ context_record__parcel__town = get_town_field()
+ context_record__operation__year = forms.IntegerField(label=_(u"Year"))
+ context_record__datings__period = forms.ChoiceField(label=_(u"Period"),
+ choices=models.Period.get_types())
+ context_record__unit = forms.ChoiceField(label=_(u"Unit type"),
+ choices=models.Unit.get_types())
+ def __init__(self, *args, **kwargs):
+ super(RecordSourceSelect, self).__init__(*args, **kwargs)
+ self.fields['context_record__datings__period'].choices = \
+ models.Period.get_types()
+ self.fields['context_record__datings__period'].help_text = \
+ models.Period.get_help()
+ self.fields['context_record__unit'].choices = models.Unit.get_types()
+ self.fields['context_record__unit'].help_text = models.Unit.get_help()
+
+
+RecordSourceFormSelection = get_form_selection(
+ 'RecordSourceFormSelection', _(u"Documentation search"), 'pk',
+ models.ContextRecordSource, RecordSourceSelect, 'get-recordsource',
+ _(u"You should select a document."))
+
+record_source_modification_wizard = RecordSourceWizard([
+ ('selec-record_source_modification', RecordSourceFormSelection),
+ ('source-record_source_modification', SourceForm),
+ ('authors-record_source_modification', AuthorFormset),
+ ('final-record_source_modification', FinalForm)],
+ url_name='record_source_modification',)
+
+class RecordSourceDeletionWizard(DeletionWizard):
+ model = models.ContextRecordSource
+ fields = ['context_record', 'title', 'source_type', 'authors',]
+
+record_source_deletion_wizard = RecordSourceDeletionWizard([
+ ('selec-record_source_deletion', RecordSourceFormSelection),
+ ('final-record_source_deletion', RecordDeletionForm)],
+ url_name='record_source_deletion',)
diff --git a/ishtar/ishtar_base/urls.py b/ishtar/ishtar_base/urls.py
index b8ce788b8..60bee05b6 100644
--- a/ishtar/ishtar_base/urls.py
+++ b/ishtar/ishtar_base/urls.py
@@ -25,13 +25,17 @@ import forms_main as ishtar_forms
urlpatterns, actions = [], []
+
+# forms
urlpatterns = patterns('',
+ # General
url(BASE_URL + r'person_creation/(?P<step>.+)$',
ishtar_forms.person_creation_wizard, name='person_creation'),
url(BASE_URL + r'person_modification/(?P<step>.+)$',
ishtar_forms.person_modification_wizard, name='person_modification'),
url(BASE_URL + r'account_management/(?P<step>.+)$',
ishtar_forms.account_management_wizard, name='account_management'),
+ # Archaelogical files
url(BASE_URL + r'file_search/(?P<step>.+)$',
ishtar_forms.file_search_wizard, name='file_search'),
url(BASE_URL + r'file_creation/(?P<step>.+)$',
@@ -49,6 +53,7 @@ urlpatterns = patterns('',
url(BASE_URL + r'file_administrativeactfile_deletion/(?P<step>.+)$',
ishtar_forms.file_administrativeactfile_deletion_wizard,
name='file_administrativeactfile_deletion'),
+ # Operations
url(BASE_URL + r'operation_search/(?P<step>.+)$',
ishtar_forms.operation_search_wizard, name='operation_search'),
url(BASE_URL + r'operation_creation/(?P<step>.+)$',
@@ -78,6 +83,7 @@ urlpatterns = patterns('',
url(BASE_URL + r'operation_source_deletion/(?P<step>.+)$',
ishtar_forms.operation_source_deletion_wizard,
name='operation_source_deletion'),
+ # Context records
url(BASE_URL + r'record_search/(?P<step>.+)$',
ishtar_forms.record_search_wizard, name='record_search'),
url(BASE_URL + r'record_creation/(?P<step>.+)$',
@@ -86,6 +92,7 @@ urlpatterns = patterns('',
ishtar_forms.record_modification_wizard, name='record_modification'),
url(BASE_URL + r'record_deletion/(?P<step>.+)$',
ishtar_forms.record_deletion_wizard, name='record_deletion'),
+ # Finds
url(BASE_URL + r'item_search/(?P<step>.+)$',
ishtar_forms.item_search_wizard, name='item_search'),
url(BASE_URL + r'item_creation/(?P<step>.+)$',
@@ -104,60 +111,63 @@ for section in menu.childs:
actions.append(menu_item.idx)
actions = r"|".join(actions)
+# other views
urlpatterns += patterns('ishtar.ishtar_base.views',
+ # General
url(BASE_URL + r'(?P<action_slug>' + actions + r')/$', 'action',
- name='action'),
+ name='action'),
+ url(BASE_URL + r'new-person/(?P<parent_name>.+)?/$',
+ 'new_person', name='new-person'),
url(BASE_URL + r'autocomplete-person/([0-9_]+)?$', 'autocomplete_person',
- name='autocomplete-person'),
+ name='autocomplete-person'),
url(BASE_URL + r'autocomplete-town/$', 'autocomplete_town',
- name='autocomplete-town'),
+ name='autocomplete-town'),
+ url(BASE_URL + r'new-author/(?P<parent_name>.+)?/$',
+ 'new_author', name='new-author'),
url(BASE_URL + r'autocomplete-author/$', 'autocomplete_author',
- name='autocomplete-author'),
+ name='autocomplete-author'),
+ url(BASE_URL + r'new-organization/(?P<parent_name>.+)?/$',
+ 'new_organization', name='new-organization'),
url(BASE_URL + r'autocomplete-organization/([0-9_]+)?$',
- 'autocomplete_organization',
- name='autocomplete-organization'),
- url(BASE_URL + r'autocomplete-file/$', 'autocomplete_file',
- name='autocomplete-file'),
+ 'autocomplete_organization', name='autocomplete-organization'),
+ url(BASE_URL + r'new-warehouse/(?P<parent_name>.+)?/$',
+ 'new_warehouse', name='new-warehouse'),
url(BASE_URL + r'autocomplete-warehouse/$', 'autocomplete_warehouse',
- name='autocomplete-warehouse'),
+ name='autocomplete-warehouse'),
+ # Archaelogical files
+ url(BASE_URL + r'autocomplete-file/$', 'autocomplete_file',
+ name='autocomplete-file'),
url(BASE_URL + r'get-file/(?P<type>.+)?$', 'get_file',
- name='get-file'),
+ name='get-file'),
+ url(BASE_URL + r'get-administrativeactfile/(?P<type>.+)?$',
+ 'get_administrativeactfile', name='get-administrativeactfile'),
url(BASE_URL + r'show-file/(?P<pk>.+)?/(?P<type>.+)?$', 'show_file',
- name='show-file'),
+ name='show-file'),
url(BASE_URL + r'show-historized-file/(?P<pk>.+)?/(?P<date>.+)?$',
- 'show_file', name='show-historized-file'),
+ 'show_file', name='show-historized-file'),
url(BASE_URL + r'revert-file/(?P<pk>.+)/(?P<date>.+)$',
- 'revert_file', name='revert-file'),
+ 'revert_file', name='revert-file'),
+ # Operations
url(BASE_URL + r'autocomplete-operation/$', 'autocomplete_operation',
- name='autocomplete-operation'),
+ name='autocomplete-operation'),
url(BASE_URL + r'get-operation/(?P<type>.+)?$', 'get_operation',
- name='get-operation'),
+ name='get-operation'),
url(BASE_URL + r'revert-operation/(?P<pk>.+)/(?P<date>.+)$',
- 'revert_operation', name='revert-operation'),
+ 'revert_operation', name='revert-operation'),
url(BASE_URL + r'show-operation/(?P<pk>.+)?/(?P<type>.+)?$',
- 'show_operation',
- name='show-operation'),
- url(BASE_URL + r'show-contextrecord/(?P<pk>.+)?/(?P<type>.+)?$',
- 'show_contextrecord',
- name='show-contextrecord'),
- url(BASE_URL + r'update-current-item/$', 'update_current_item',
- name='update-current-item'),
- url(BASE_URL + r'get-administrativeactfile/(?P<type>.+)?$',
- 'get_administrativeactfile', name='get-administrativeactfile'),
+ 'show_operation', name='show-operation'),
url(BASE_URL + r'get-administrativeactop/(?P<type>.+)?$',
- 'get_administrativeactop', name='get-administrativeactop'),
+ 'get_administrativeactop', name='get-administrativeactop'),
+ # Context records
+ url(BASE_URL + r'show-contextrecord/(?P<pk>.+)?/(?P<type>.+)?$',
+ 'show_contextrecord', name='show-contextrecord'),
url(BASE_URL + r'get-contextrecord/(?P<type>.+)?$', 'get_contextrecord',
- name='get-contextrecord'),
+ name='get-contextrecord'),
+ # Finds
+ url(BASE_URL + r'update-current-item/$', 'update_current_item',
+ name='update-current-item'),
url(BASE_URL + r'get-item/(?P<type>.+)?$', 'get_archaeologicalitem',
- name='get-item'),
- url(BASE_URL + r'new-warehouse/(?P<parent_name>.+)?/$',
- 'new_warehouse', name='new-warehouse'),
- url(BASE_URL + r'new-person/(?P<parent_name>.+)?/$',
- 'new_person', name='new-person'),
- url(BASE_URL + r'new-author/(?P<parent_name>.+)?/$',
- 'new_author', name='new-author'),
- url(BASE_URL + r'new-organization/(?P<parent_name>.+)?/$',
- 'new_organization', name='new-organization'),
+ name='get-item'),
url(BASE_URL + r'get-operationsource/(?P<type>.+)?$',
- 'get_operationsource', name='get-operationsource'),
+ 'get_operationsource', name='get-operationsource'),
)