diff options
Diffstat (limited to 'archaeological_context_records')
-rw-r--r-- | archaeological_context_records/models.py | 10 | ||||
-rw-r--r-- | archaeological_context_records/templates/ishtar/sheet_contextrecord.html | 17 | ||||
-rw-r--r-- | archaeological_context_records/urls.py | 5 | ||||
-rw-r--r-- | archaeological_context_records/views.py | 23 |
4 files changed, 45 insertions, 10 deletions
diff --git a/archaeological_context_records/models.py b/archaeological_context_records/models.py index a3dcd5761..f6253bf68 100644 --- a/archaeological_context_records/models.py +++ b/archaeological_context_records/models.py @@ -33,7 +33,8 @@ from ishtar_common.utils import cached_label_changed from ishtar_common.models import GeneralType, BaseHistorizedItem, \ HistoricalRecords, OwnPerms, ShortMenuItem, Source, GeneralRelationType,\ GeneralRecordRelations, post_delete_record_relation, get_image_path, \ - ImageModel, post_save_cache, ValueGetter, BulkUpdatedItem, IshtarImage + ImageModel, post_save_cache, ValueGetter, BulkUpdatedItem, IshtarImage, \ + RelationItem from archaeological_operations.models import Operation, Period, Parcel, \ ArchaeologicalSite @@ -205,7 +206,8 @@ class CRBulkView(object): class ContextRecord(BulkUpdatedItem, BaseHistorizedItem, - ImageModel, OwnPerms, ValueGetter, ShortMenuItem): + ImageModel, OwnPerms, ValueGetter, ShortMenuItem, + RelationItem): SHOW_URL = 'show-contextrecord' SLUG = 'contextrecord' EXTERNAL_ID_KEY = 'context_record_external_id' @@ -326,10 +328,6 @@ class ContextRecord(BulkUpdatedItem, BaseHistorizedItem, blank=True) cached_label = models.TextField(_(u"Cached name"), null=True, blank=True, db_index=True) - relation_image = models.FileField( - _(u"Generated relation image (SVG)"), null=True, blank=True, - upload_to=get_image_path - ) PARENT_SEARCH_VECTORS = ['operation'] BASE_SEARCH_VECTORS = ["cached_label", "label", "location", "interpretation", "filling", "datings_comment", diff --git a/archaeological_context_records/templates/ishtar/sheet_contextrecord.html b/archaeological_context_records/templates/ishtar/sheet_contextrecord.html index dd0579271..d8d89e3c2 100644 --- a/archaeological_context_records/templates/ishtar/sheet_contextrecord.html +++ b/archaeological_context_records/templates/ishtar/sheet_contextrecord.html @@ -86,10 +86,23 @@ <img src="{{item.relation_image.url}}" class="img-fluid img-thumbnail"> {% if output != "ODT" %}</a>{% endif %} </div> -<hr> -{% endif %} {% endif %} +{% if DOT_GENERATION %} +<p class="text-center mt-1"> + <a class="btn btn-secondary" + onclick="long_wait();return true;" + href="{% url 'generate-relation-image-contextrecord' item.pk %}"> + {% if item.relation_image %} + {% trans "Re-generate image" %} + {% else %} + {% trans "Generate image" %} + {% endif %} + </a> +</p> +{% endif %} +<hr> +{% endif %} {% if item.operation %} <h3>{% trans "Operation summary"%}</h3> diff --git a/archaeological_context_records/urls.py b/archaeological_context_records/urls.py index 86e4c3137..513e58543 100644 --- a/archaeological_context_records/urls.py +++ b/archaeological_context_records/urls.py @@ -71,6 +71,11 @@ urlpatterns = [ views.show_contextrecord, name='show-historized-contextrecord'), url(r'revert-contextrecord/(?P<pk>.+)/(?P<date>.+)$', views.revert_contextrecord, name='revert-contextrecord'), + url(r'^display-contextrecord/(?P<pk>.+)/$', views.display_contextrecord, + name='display-' + models.ContextRecord.SLUG), + url(r'generate-relation-image-contextrecord/(?P<pk>.+)/', + views.GenerateRelationImage.as_view(), + name='generate-relation-image-contextrecord'), url(r'get-contextrecord/own/(?P<type>.+)?$', views.get_contextrecord, name='get-own-contextrecord', kwargs={'force_own': True}), url(r'get-contextrecord/(?P<type>.+)?$', views.get_contextrecord, diff --git a/archaeological_context_records/views.py b/archaeological_context_records/views.py index 53ef90a40..9c2f14406 100644 --- a/archaeological_context_records/views.py +++ b/archaeological_context_records/views.py @@ -21,12 +21,14 @@ import json from django.core.urlresolvers import reverse from django.db.models import Q -from django.http import HttpResponse, HttpResponseRedirect +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 ishtar_common.forms_common import AuthorFormset, SourceForm -from ishtar_common.views import get_item, show_item, revert_item +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 @@ -41,6 +43,7 @@ show_contextrecord = show_item( extra_dct=site_extra_context ) revert_contextrecord = revert_item(models.ContextRecord) +display_contextrecord = display_item(models.ContextRecord) def autocomplete_contextrecord(request): @@ -194,3 +197,19 @@ def reset_wizards(request): (RecordSourceWizard, 'record_source_modification'), (RecordSourceDeletionWizard, 'record_source_deletion')): wizard_class.session_reset(request, url_name) + + +class GenerateRelationImage(IshtarMixin, LoginRequiredMixin, RedirectView): + def get_redirect_url(self, *args, **kwargs): + return reverse('display-' + models.ContextRecord.SLUG, + args=[self.context_record.pk]) + + def get(self, request, *args, **kwargs): + try: + self.context_record = models.ContextRecord.objects.get( + pk=kwargs['pk'] + ) + except models.ContextRecord.DoesNotExist: + raise Http404() + self.context_record.generate_relation_image() + return super(GenerateRelationImage, self).get(request, *args, **kwargs)
\ No newline at end of file |