diff options
Diffstat (limited to 'archaeological_context_records')
-rw-r--r-- | archaeological_context_records/admin.py | 14 | ||||
-rw-r--r-- | archaeological_context_records/forms.py | 71 | ||||
-rw-r--r-- | archaeological_context_records/ishtar_menu.py | 26 | ||||
-rw-r--r-- | archaeological_context_records/models.py | 85 | ||||
-rw-r--r-- | archaeological_context_records/templates/ishtar/sheet_contextrecord.html | 4 | ||||
-rw-r--r-- | archaeological_context_records/urls.py | 26 | ||||
-rw-r--r-- | archaeological_context_records/views.py | 63 | ||||
-rw-r--r-- | archaeological_context_records/wizards.py | 14 |
8 files changed, 24 insertions, 279 deletions
diff --git a/archaeological_context_records/admin.py b/archaeological_context_records/admin.py index c06927f37..1f08bc505 100644 --- a/archaeological_context_records/admin.py +++ b/archaeological_context_records/admin.py @@ -65,20 +65,8 @@ class ContextRecordAdmin(HistorizedObjectAdmin): 'cached_label', 'datings' ] -admin_site.register(models.ContextRecord, ContextRecordAdmin) - - -class ContextRecordSourceAdmin(admin.ModelAdmin): - list_display = ('context_record', 'title', 'source_type',) - list_filter = ('source_type',) - search_fields = ('title', ) - model = models.ContextRecordSource - form = make_ajax_form(model, { - "context_record": 'context_record', - 'authors': 'author' - }) -admin_site.register(models.ContextRecordSource, ContextRecordSourceAdmin) +admin_site.register(models.ContextRecord, ContextRecordAdmin) class RecordRelationsAdmin(admin.ModelAdmin): diff --git a/archaeological_context_records/forms.py b/archaeological_context_records/forms.py index 0d68d6aa3..3238eb771 100644 --- a/archaeological_context_records/forms.py +++ b/archaeological_context_records/forms.py @@ -28,21 +28,19 @@ from django.core import validators from django.forms.formsets import formset_factory from django.utils.translation import ugettext_lazy as _ -from ishtar_common.models import valid_id, IshtarSiteProfile, Town +import models +from archaeological_operations.forms import OperationSelect, ParcelField, \ + RecordRelationsForm as OpeRecordRelationsForm, RecordRelationsFormSetBase from archaeological_operations.models import Period, Parcel, Operation, \ ArchaeologicalSite, RelationType as OpeRelationType -import models - -from ishtar_common import widgets -from bootstrap_datepicker.widgets import DatePicker from archaeological_operations.widgets import OAWidget +from bootstrap_datepicker.widgets import DatePicker +from ishtar_common import widgets from ishtar_common.forms import FinalForm, FormSet, \ reverse_lazy, get_form_selection, TableSelect, ManageOldType, CustomForm, \ FieldType -from ishtar_common.forms_common import get_town_field, SourceSelect, \ - BaseImageForm, BaseImageFormset, SourceForm -from archaeological_operations.forms import OperationSelect, ParcelField,\ - RecordRelationsForm as OpeRecordRelationsForm, RecordRelationsFormSetBase +from ishtar_common.forms_common import get_town_field +from ishtar_common.models import valid_id, IshtarSiteProfile, Town class OperationFormSelection(CustomForm, forms.Form): @@ -282,14 +280,6 @@ class RecordFormGeneral(CustomForm, ManageOldType): return cleaned_data -ImagesFormset = formset_factory(BaseImageForm, can_delete=True, - formset=BaseImageFormset) -ImagesFormset.file_upload = True -ImagesFormset.form_label = _(u"Images") -ImagesFormset.form_admin_name = _(u"Context record - 025 - Images") -ImagesFormset.form_slug = "contextrecord-025-images" - - class DatingForm(ManageOldType, forms.Form): form_label = _("Dating") base_model = 'dating' @@ -385,50 +375,3 @@ class RecordDeletionForm(FinalForm): confirm_msg = " " confirm_end_msg = _(u"Would you like to delete this context record?") -######################################### -# Source management for context records # -######################################### - - -SourceRecordFormSelection = get_form_selection( - 'SourceRecordFormSelection', _(u"Context record search"), - 'context_record', models.ContextRecord, RecordSelect, 'get-contextrecord', - _(u"You should select a context record.")) - - -class RecordSourceSelect(SourceSelect): - context_record__operation__year = forms.IntegerField( - label=_(u"Year of the operation")) - context_record__operation__operation_code = forms.IntegerField( - label=_(u"Numeric reference")) - if settings.COUNTRY == 'fr': - context_record__operation__code_patriarche = forms.CharField( - max_length=500, - widget=OAWidget, - label="Code PATRIARCHE") - context_record__town = get_town_field( - label=_(u"Town")) - context_record__datings__period = forms.ChoiceField( - label=_(u"Period of the context record"), choices=[]) - context_record__unit = forms.ChoiceField( - label=_(u"Context record type"), choices=[]) - - def __init__(self, *args, **kwargs): - super(RecordSourceSelect, self).__init__(*args, **kwargs) - self.fields['context_record__datings__period'].choices = \ - Period.get_types() - self.fields['context_record__datings__period'].help_text = \ - 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-contextrecordsource', - _(u"You should select a document."), - get_full_url='get-contextrecordsource-full') - - -class ContextRecordSourceForm(SourceForm): - form_slug = "contextrecordsource-general" diff --git a/archaeological_context_records/ishtar_menu.py b/archaeological_context_records/ishtar_menu.py index 469f473e7..437b28fdd 100644 --- a/archaeological_context_records/ishtar_menu.py +++ b/archaeological_context_records/ishtar_menu.py @@ -45,32 +45,6 @@ MENU_SECTIONS = [ model=models.ContextRecord, access_controls=['delete_contextrecord', 'delete_own_contextrecord']), - SectionItem('record_source', _(u"Documentation"), - childs=[ - MenuItem('record_source_search', - _(u"Search"), - model=models.ContextRecordSource, - access_controls=['view_contextrecord', - 'view_own_contextrecord']), - MenuItem('record_source_creation', - _(u"Creation"), - 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/models.py b/archaeological_context_records/models.py index b12a31516..11b7732f8 100644 --- a/archaeological_context_records/models.py +++ b/archaeological_context_records/models.py @@ -30,11 +30,11 @@ from django.utils.text import slugify from ishtar_common.utils import cached_label_changed -from ishtar_common.models import BaseSource, Document, GeneralType, \ +from ishtar_common.models import Document, GeneralType, \ BaseHistorizedItem, HistoricalRecords, OwnPerms, ShortMenuItem, \ GeneralRelationType, GeneralRecordRelations, post_delete_record_relation,\ - get_image_path, post_save_cache, ValueGetter, BulkUpdatedItem, \ - IshtarImage, RelationItem, ThroughImage, Town + post_save_cache, ValueGetter, BulkUpdatedItem, \ + RelationItem, Town from archaeological_operations.models import Operation, Period, Parcel, \ ArchaeologicalSite @@ -329,8 +329,6 @@ class ContextRecord(BulkUpdatedItem, BaseHistorizedItem, documents = models.ManyToManyField( Document, related_name='context_records', verbose_name=_(u"Documents"), blank=True) - images = models.ManyToManyField(IshtarImage, verbose_name=_(u"Images"), - blank=True, through='ContextRecordImage') cached_label = models.TextField(_(u"Cached name"), null=True, blank=True, db_index=True) PARENT_SEARCH_VECTORS = ['operation'] @@ -554,8 +552,7 @@ class ContextRecord(BulkUpdatedItem, BaseHistorizedItem, return u" ; ".join(crs) def find_docs_q(self): - from archaeological_finds.models import FindSource - return FindSource.objects.filter(find__base_finds__context_record=self) + return Document.objects.filter(finds__base_finds__context_record=self) def fix(self): """ @@ -575,11 +572,6 @@ class ContextRecord(BulkUpdatedItem, BaseHistorizedItem, post_save.connect(cached_label_changed, sender=ContextRecord) -class ContextRecordImage(ThroughImage): - item = models.ForeignKey(ContextRecord, on_delete=models.CASCADE, - related_name='associated_images') - - class RelationType(GeneralRelationType): class Meta: verbose_name = _(u"Relation type") @@ -679,72 +671,3 @@ class RecordRelationView(models.Model): def __unicode__(self): return u"{} \"{}\"".format(self.relation_type, self.right_record) - - -class ContextRecordSource(BaseSource): - SHOW_URL = 'show-contextrecordsource' - MODIFY_URL = 'record_source_modify' - TABLE_COLS = ['context_record__operation__cached_label', 'context_record']\ - + BaseSource.TABLE_COLS - COL_LABELS = {'context_record__operation__cached_label': _(u"Operation")} - - # search parameters - RELATIVE_SESSION_NAMES = [ - ('contextrecord', 'context_record__pk'), - ('operation', 'context_record__operation__pk'), - ('file', 'context_record__operation__associated_file__pk')] - BOOL_FIELDS = ['duplicate'] - EXTRA_REQUEST_KEYS = { - 'title': 'title__icontains', - 'description': 'description__icontains', - 'comment': 'comment__icontains', - 'person': 'authors__person__pk', - 'additional_information': 'additional_information__icontains', - 'context_record__town': 'context_record__town__pk', - 'context_record__operation__year': 'context_record__operation__year', - 'context_record__operation__operation_code': - 'context_record__operation__operation_code', - 'context_record__operation__code_patriarche': - 'context_record__operation__code_patriarche', - 'context_record__operation': 'context_record__operation__pk', - 'context_record__datings__period': - 'context_record__datings__period__pk', - 'context_record__unit': 'context_record__unit__pk', - } - PARENT_SEARCH_VECTORS = BaseSource.PARENT_SEARCH_VECTORS + [ - 'context_record'] - - class Meta: - verbose_name = _(u"Context record documentation") - verbose_name_plural = _(u"Context record documentations") - permissions = ( - ("view_contextrecordsource", - u"Can view all Context record sources"), - ("view_own_contextrecordsource", - u"Can view own Context record source"), - ("add_own_contextrecordsource", - u"Can add own Context record source"), - ("change_own_contextrecordsource", - u"Can change own Context record source"), - ("delete_own_contextrecordsource", - u"Can delete own Context record source"), - ) - context_record = models.ForeignKey( - ContextRecord, verbose_name=_(u"Context record"), - related_name="source") - - @property - def owner(self): - return self.context_record - - @classmethod - def get_query_owns(cls, ishtaruser): - q = cls._construct_query_own( - 'context_record__operation__', - Operation._get_query_owns_dicts(ishtaruser) - ) | cls._construct_query_own('', [ - {'context_record__history_creator': ishtaruser.user_ptr}, - {'context_record__operation__end_date__isnull': True} - ]) - return q - diff --git a/archaeological_context_records/templates/ishtar/sheet_contextrecord.html b/archaeological_context_records/templates/ishtar/sheet_contextrecord.html index d8d89e3c2..c2666d615 100644 --- a/archaeological_context_records/templates/ishtar/sheet_contextrecord.html +++ b/archaeological_context_records/templates/ishtar/sheet_contextrecord.html @@ -158,19 +158,23 @@ </div> {% endif %} +{% comment %} {% trans "Document from this context record" as cr_docs %} {% if item.source.count %} {% dynamic_table_document cr_docs 'context_records_docs' 'context_record' item.pk '' output %} {% endif %} +{% endcomment %} {% trans "Finds" as finds %} {% if item.base_finds.count %} {% dynamic_table_document finds 'finds_for_ope' 'base_finds__context_record' item.pk 'TABLE_COLS_FOR_OPE' output %} {% endif %} +{% comment %} {% trans "Documents from associated finds" as finds_docs %} {% if item.find_docs_q.count %} {% dynamic_table_document finds_docs 'finds_docs' 'find__base_finds__context_record' item.pk '' output %} {% endif %} +{% endcomment %} {% endblock %} diff --git a/archaeological_context_records/urls.py b/archaeological_context_records/urls.py index 513e58543..5610150f1 100644 --- a/archaeological_context_records/urls.py +++ b/archaeological_context_records/urls.py @@ -42,24 +42,6 @@ urlpatterns = [ url(r'record_deletion/(?P<step>.+)?$', check_rights(['change_contextrecord', 'change_own_contextrecord'])( views.record_deletion_wizard), name='record_deletion'), - url(r'record_source_search/(?P<step>.+)?$', - check_rights(['view_contextrecord', 'view_own_contextrecord'])( - views.record_source_search_wizard), - name='record_source_search'), - url(r'record_source_creation/(?P<step>.+)?$', - check_rights(['change_contextrecord', 'change_own_contextrecord'])( - views.record_source_creation_wizard), - name='record_source_creation'), - url(r'record_source_modification/(?P<step>.+)?$', - check_rights(['change_contextrecord', 'change_own_contextrecord'])( - views.record_source_modification_wizard), - name='record_source_modification'), - url(r'record_source_modify/(?P<pk>.+)/$', - views.record_source_modify, name='record_source_modify'), - url(r'record_source_deletion/(?P<step>.+)?$', - check_rights(['change_contextrecord', 'change_own_contextrecord'])( - views.record_source_deletion_wizard), - name='record_source_deletion'), url(r'autocomplete-contextrecord/$', views.autocomplete_contextrecord, name='autocomplete-contextrecord'), url(r'show-contextrecord(?:/(?P<pk>.+))?/(?P<type>.+)?$', @@ -100,12 +82,4 @@ urlpatterns = [ url(r'get-contextrecordrelationdetail/(?P<type>.+)?$', views.get_contextrecordrelationdetail, name='get-contextrecordrelationdetail'), - url(r'show-contextrecordsource(?:/(?P<pk>.+))?/(?P<type>.+)?$', - views.show_contextrecordsource, - name=models.ContextRecordSource.SHOW_URL), - url(r'get-contexrecordsource/(?P<type>.+)?$', - views.get_contextrecordsource, name='get-contextrecordsource'), - url(r'get-contexrecordsource-full/(?P<type>.+)?$', - views.get_contextrecordsource, name='get-contextrecordsource-full', - kwargs={'full': True}), ] diff --git a/archaeological_context_records/views.py b/archaeological_context_records/views.py index f1c3913c7..787b76b31 100644 --- a/archaeological_context_records/views.py +++ b/archaeological_context_records/views.py @@ -23,20 +23,17 @@ from django.core.urlresolvers import reverse from django.db.models import Q from django.http import HttpResponse, HttpResponseRedirect, Http404 from django.shortcuts import redirect -from django.views.generic import RedirectView from django.utils.translation import ugettext_lazy as _ +from django.views.generic import RedirectView -from ishtar_common.forms_common import AuthorFormset +import models +from archaeological_operations.views import site_extra_context +from forms import * +from ishtar_common.utils import put_session_message from ishtar_common.views import get_item, show_item, revert_item, \ IshtarMixin, LoginRequiredMixin, display_item -from archaeological_operations.views import site_extra_context from ishtar_common.wizards import SearchWizard - -from ishtar_common.utils import put_session_message - from wizards import * -from forms import * -import models show_contextrecord = show_item( models.ContextRecord, 'contextrecord', @@ -83,13 +80,6 @@ get_contextrecord_for_ope = get_item( 'get_contextrecord', 'contextrecord', own_table_cols=models.ContextRecord.TABLE_COLS_FOR_OPE) -show_contextrecordsource = show_item(models.ContextRecordSource, - 'contextrecordsource') - -get_contextrecordsource = get_item( - models.ContextRecordSource, - 'get_contextrecordsource', 'contextrecordsource') - get_contextrecordrelation = get_item( models.RecordRelationView, 'get_contextrecordrelation', 'contextrecordrelation', specific_perms=['view_recordrelation'], @@ -108,7 +98,6 @@ record_search_wizard = SearchWizard.as_view([ record_creation_steps = [ ('selec-record_creation', OperationRecordFormSelection), ('general-record_creation', RecordFormGeneral), - ('images-record_creation', ImagesFormset), ('datings-record_creation', DatingFormSet), ('interpretation-record_creation', RecordFormInterpretation), ('relations-record_creation', RecordRelationsFormSet), @@ -125,7 +114,6 @@ record_modification_steps = [ ('selec-record_modification', RecordFormSelection), ('operation-record_modification', OperationFormSelection), ('general-record_modification', RecordFormGeneral), - ('images-record_modification', ImagesFormset), ('datings-record_modification', DatingFormSet), ('interpretation-record_modification', RecordFormInterpretation), ('relations-record_modification', RecordRelationsFormSet), @@ -161,51 +149,12 @@ record_deletion_wizard = RecordDeletionWizard.as_view([ label=_(u"Context record deletion"), url_name='record_deletion',) -record_source_search_wizard = SearchWizard.as_view([ - ('selec-record_source_search', RecordSourceFormSelection)], - label=_(u"Context record: source search"), - url_name='record_source_search',) - -record_source_creation_wizard = RecordSourceWizard.as_view([ - ('selec-record_source_creation', SourceRecordFormSelection), - ('source-record_source_creation', ContextRecordSourceForm), - ('authors-record_source_creation', AuthorFormset), - ('final-record_source_creation', FinalForm)], - label=_(u"Context record: new source"), - url_name='record_source_creation',) - -record_source_modification_wizard = RecordSourceWizard.as_view([ - ('selec-record_source_modification', RecordSourceFormSelection), - ('source-record_source_modification', ContextRecordSourceForm), - ('authors-record_source_modification', AuthorFormset), - ('final-record_source_modification', FinalForm)], - label=_(u"Context record: source modification"), - url_name='record_source_modification',) - - -def record_source_modify(request, pk): - record_source_modification_wizard(request) - RecordSourceWizard.session_set_value( - request, 'selec-record_source_modification', 'pk', pk, reset=True) - return redirect(reverse( - 'record_source_modification', - kwargs={'step': 'source-record_source_modification'})) - -record_source_deletion_wizard = RecordSourceDeletionWizard.as_view([ - ('selec-record_source_deletion', RecordSourceFormSelection), - ('final-record_source_deletion', RecordDeletionForm)], - label=_(u"Context record: source deletion"), - url_name='record_source_deletion',) - def reset_wizards(request): for wizard_class, url_name in ( (RecordWizard, 'record_creation'), (RecordModifWizard, 'record_modification'), - (RecordDeletionWizard, 'record_deletion'), - (RecordSourceWizard, 'record_source_creation'), - (RecordSourceWizard, 'record_source_modification'), - (RecordSourceDeletionWizard, 'record_source_deletion')): + (RecordDeletionWizard, 'record_deletion')): wizard_class.session_reset(request, url_name) diff --git a/archaeological_context_records/wizards.py b/archaeological_context_records/wizards.py index cbeb1c1d2..89750794c 100644 --- a/archaeological_context_records/wizards.py +++ b/archaeological_context_records/wizards.py @@ -20,9 +20,9 @@ from django.core.exceptions import ObjectDoesNotExist 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 +from ishtar_common.forms import reverse_lazy +from ishtar_common.wizards import Wizard, DeletionWizard class RecordWizard(Wizard): @@ -150,13 +150,3 @@ class RecordDeletionWizard(DeletionWizard): 'filling', 'interpretation', 'taq', 'taq_estimated', 'tpq', 'tpq_estimated'] filter_owns = {'selec-record_deletion': ['pk']} - - -class RecordSourceWizard(SourceWizard): - model = models.ContextRecordSource - wizard_done_window = reverse_lazy('show-contextrecordsource') - - -class RecordSourceDeletionWizard(DeletionWizard): - model = models.ContextRecordSource - fields = ['context_record', 'title', 'source_type', 'authors', ] |