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:  | 
