diff options
-rw-r--r-- | archaeological_context_records/urls.py | 3 | ||||
-rw-r--r-- | archaeological_context_records/views.py | 21 | ||||
-rw-r--r-- | ishtar_common/migrations/0099_ishtarsiteprofile_relation_graph.py | 20 | ||||
-rw-r--r-- | ishtar_common/models.py | 9 | ||||
-rw-r--r-- | ishtar_common/views_item.py | 2 |
5 files changed, 44 insertions, 11 deletions
diff --git a/archaeological_context_records/urls.py b/archaeological_context_records/urls.py index fc917f542..48d8e54a3 100644 --- a/archaeological_context_records/urls.py +++ b/archaeological_context_records/urls.py @@ -53,7 +53,8 @@ urlpatterns = [ views.show_contextrecord, name='show-historized-contextrecord'), url(r'revert-contextrecord/(?P<pk>.+)/(?P<date>.+)$', views.revert_contextrecord, name='revert-contextrecord'), - url(r'generate-relation-image-contextrecord/(?P<pk>.+)/', + url(r'generate-relation-image-contextrecord/(?P<pk>.+)/(' + r'?P<type>(bellow)|(above))?', views.GenerateRelationImage.as_view(), name='generate-relation-image-contextrecord'), url(r'get-contextrecord/own/(?P<type>.+)?$', views.get_contextrecord, diff --git a/archaeological_context_records/views.py b/archaeological_context_records/views.py index 73c77fa48..fbe382623 100644 --- a/archaeological_context_records/views.py +++ b/archaeological_context_records/views.py @@ -164,18 +164,25 @@ def reset_wizards(request): class GenerateRelationImage(IshtarMixin, LoginRequiredMixin, RedirectView): + model = models.ContextRecord + def get_redirect_url(self, *args, **kwargs): - return reverse('display-' + models.ContextRecord.SLUG, - args=[self.context_record.pk]) + return reverse('display-item', + args=[self.model.SLUG, self.item.pk]) def get(self, request, *args, **kwargs): try: - self.context_record = models.ContextRecord.objects.get( - pk=kwargs['pk'] - ) - except models.ContextRecord.DoesNotExist: + self.item = self.model.objects.get(pk=kwargs['pk']) + except self.model.DoesNotExist: raise Http404() - self.context_record.generate_relation_image() + render_above, render_bellow = True, True + render_type = kwargs.get("type", None) + if render_type == "above": + render_bellow = False + elif render_type == "bellow": + render_above = False + self.item.generate_relation_image( + render_bellow=render_bellow, render_above=render_above) return super(GenerateRelationImage, self).get(request, *args, **kwargs) diff --git a/ishtar_common/migrations/0099_ishtarsiteprofile_relation_graph.py b/ishtar_common/migrations/0099_ishtarsiteprofile_relation_graph.py new file mode 100644 index 000000000..95c0df133 --- /dev/null +++ b/ishtar_common/migrations/0099_ishtarsiteprofile_relation_graph.py @@ -0,0 +1,20 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.11.18 on 2019-07-08 10:12 +from __future__ import unicode_literals + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('ishtar_common', '0098_ishtarsiteprofile_point_precision'), + ] + + operations = [ + migrations.AddField( + model_name='ishtarsiteprofile', + name='relation_graph', + field=models.BooleanField(default=False, verbose_name='Generate relation graph'), + ), + ] diff --git a/ishtar_common/models.py b/ishtar_common/models.py index e8b6fc518..b2f235207 100644 --- a/ishtar_common/models.py +++ b/ishtar_common/models.py @@ -1241,8 +1241,11 @@ class RelationItem(models.Model): class Meta: abstract = True - def generate_relation_image(self): - generate_relation_graph(self) + def generate_relation_image(self, highlight_current=True, + render_above=True, render_bellow=True): + generate_relation_graph(self, highlight_current=highlight_current, + render_above=render_above, + render_bellow=render_bellow) class JsonDataSection(models.Model): @@ -2633,6 +2636,8 @@ class IshtarSiteProfile(models.Model, Cached): ) use_town_for_geo = models.BooleanField( _("Use town to locate when coordinates are missing"), default=True) + relation_graph = models.BooleanField(_("Generate relation graph"), + default=False) underwater = models.BooleanField(_("Underwater module"), default=False) parcel_mandatory = models.BooleanField( _("Parcel are mandatory for context records"), default=True) diff --git a/ishtar_common/views_item.py b/ishtar_common/views_item.py index 799292969..40f74396f 100644 --- a/ishtar_common/views_item.py +++ b/ishtar_common/views_item.py @@ -202,7 +202,7 @@ def show_item(model, name, extra_dct=None, model_for_perms=None): dct['PROFILE'] = profile dct['CURRENCY'] = profile.currency dct['ENCODING'] = settings.ENCODING - dct['DOT_GENERATION'] = settings.DOT_BINARY and True + dct['DOT_GENERATION'] = settings.DOT_BINARY and profile.relation_graph dct['current_window_url'] = url_name date = None if 'date' in dct: |