summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--archaeological_context_records/urls.py3
-rw-r--r--archaeological_context_records/views.py21
-rw-r--r--ishtar_common/migrations/0099_ishtarsiteprofile_relation_graph.py20
-rw-r--r--ishtar_common/models.py9
-rw-r--r--ishtar_common/views_item.py2
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: