diff options
author | Étienne Loks <etienne.loks@iggdrasil.net> | 2016-12-08 20:41:59 +0100 |
---|---|---|
committer | Étienne Loks <etienne.loks@iggdrasil.net> | 2016-12-08 20:41:59 +0100 |
commit | 34c7816addf4d24480cb5ad833cf2b70ab7e45a8 (patch) | |
tree | 7ec49e588438080c5a542123f5f7cee617df9999 /archaeological_finds/views.py | |
parent | 349fd863a1850e7e342a71c3ca38c96593609a5f (diff) | |
download | Ishtar-34c7816addf4d24480cb5ad833cf2b70ab7e45a8.tar.bz2 Ishtar-34c7816addf4d24480cb5ad833cf2b70ab7e45a8.zip |
Manage file association for treatments
Diffstat (limited to 'archaeological_finds/views.py')
-rw-r--r-- | archaeological_finds/views.py | 44 |
1 files changed, 42 insertions, 2 deletions
diff --git a/archaeological_finds/views.py b/archaeological_finds/views.py index cbd8495f8..1b08e9853 100644 --- a/archaeological_finds/views.py +++ b/archaeological_finds/views.py @@ -17,9 +17,12 @@ # See the file COPYING for details. +import json + from django.core.exceptions import PermissionDenied from django.core.urlresolvers import reverse -from django.http import HttpResponseRedirect +from django.db.models import Q +from django.http import HttpResponseRedirect, HttpResponse from django.shortcuts import redirect from django.utils.translation import ugettext_lazy as _ from django.views.generic import TemplateView @@ -56,6 +59,36 @@ show_treatmentfile = show_item(models.TreatmentFile, 'treatmentfile') get_treatmentfile = get_item(models.TreatmentFile, 'get_treatementfile', 'treatmentfile') + +def autocomplete_treatmentfile(request): + if not request.user.has_perm('ishtar_common.view_treatment', + models.Treatment) and \ + not request.user.has_perm('ishtar_common.view_own_treatment', + models.Treatment) \ + and not request.user.ishtaruser.has_right('treatmentfile_search', + session=request.session): + return HttpResponse(mimetype='text/plain') + if not request.GET.get('term'): + return HttpResponse(mimetype='text/plain') + q = request.GET.get('term') + query = Q() + for q1 in q.split(' '): + for q in q1.split(' '): + extra = Q(internal_reference__icontains=q) | \ + Q(external_id__icontains=q) | \ + Q(name__icontains=q) + try: + int(q) + extra = extra | Q(year=q) | Q(index=q) + except ValueError: + pass + query = query & extra + limit = 20 + files = models.TreatmentFile.objects.filter(query)[:limit] + data = json.dumps([{'id': file.pk, 'value': unicode(file)} + for file in files]) + return HttpResponse(data, mimetype='text/plain') + show_findsource = show_item(models.FindSource, 'findsource') get_findsource = get_item(models.FindSource, 'get_findsource', 'findsource') @@ -294,6 +327,7 @@ get_downstreamtreatment = get_item( 'downtreatment') treatment_wizard_steps = [ + ('file-treatment_creation', TreatmentFormFileChoice), ('basetreatment-treatment_creation', BaseTreatmentForm), ('selecfind-treatment_creation', UpstreamFindFormSelection), ('selecbasket-treatment_creation', SelectFindBasketForm), @@ -353,7 +387,7 @@ treatmentfile_wizard_steps = [ treatmentfile_creation_wizard = TreatmentFileWizard.as_view( treatmentfile_wizard_steps, - label=_(u"New file treatment"), + label=_(u"New treatment file"), url_name='treatmentfile_creation',) treatmentfile_modification_wizard = TreatmentFileModificationWizard.as_view( @@ -364,6 +398,12 @@ treatmentfile_modification_wizard = TreatmentFileModificationWizard.as_view( url_name='treatmentfile_modification', ) +treatmentfile_deletion_wizard = TreatmentFileDeletionWizard.as_view([ + ('selec-treatmentfile_deletion', TreatmentFileFormSelection), + ('final-treatmentfile_deletion', TreatmentFileDeletionForm)], + label=_(u"Treatment file deletion"), + url_name='treatmentfile_deletion',) + """ treatment_source_creation_wizard = TreatmentSourceWizard.as_view([ ('selec-treatment_source_creation', SourceTreatmentFormSelection), |