summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--archaeological_context_records/migrations/0004_views.py15
-rw-r--r--archaeological_context_records/models.py5
-rw-r--r--archaeological_files/migrations/0003_views.py16
-rw-r--r--archaeological_files/models.py13
-rw-r--r--archaeological_finds/migrations/0003_views.py19
-rw-r--r--archaeological_operations/migrations/0003_views.py16
-rw-r--r--archaeological_operations/models.py18
7 files changed, 100 insertions, 2 deletions
diff --git a/archaeological_context_records/migrations/0004_views.py b/archaeological_context_records/migrations/0004_views.py
new file mode 100644
index 000000000..d34b9e62b
--- /dev/null
+++ b/archaeological_context_records/migrations/0004_views.py
@@ -0,0 +1,15 @@
+# -*- coding: utf-8 -*-
+from __future__ import unicode_literals
+
+from django.db import models, migrations
+from archaeological_context_records.models import RecordRelationView
+
+class Migration(migrations.Migration):
+
+ dependencies = [
+ ('archaeological_context_records', '0003_auto_20170414_2123'),
+ ]
+
+ operations = [
+ migrations.RunSQL(RecordRelationView.CREATE_SQL)
+ ]
diff --git a/archaeological_context_records/models.py b/archaeological_context_records/models.py
index 3fdc04f21..0a5ab7cbc 100644
--- a/archaeological_context_records/models.py
+++ b/archaeological_context_records/models.py
@@ -545,7 +545,7 @@ post_delete.connect(post_delete_record_relation, sender=RecordRelations)
class RecordRelationView(models.Model):
- """
+ CREATE_SQL = """
CREATE VIEW record_relations AS
SELECT DISTINCT right_record_id as id,
right_record_id,
@@ -557,6 +557,9 @@ class RecordRelationView(models.Model):
CREATE RULE record_relations_del AS ON DELETE TO record_relations
DO INSTEAD DELETE FROM record_relations where id=NULL;
"""
+ DELETE_SQL = """
+ DROP VIEW record_relations;
+ """
TABLE_COLS = [
"relation_type",
"right_record__label", "right_record__unit", "right_record__parcel",
diff --git a/archaeological_files/migrations/0003_views.py b/archaeological_files/migrations/0003_views.py
new file mode 100644
index 000000000..5e3d891ad
--- /dev/null
+++ b/archaeological_files/migrations/0003_views.py
@@ -0,0 +1,16 @@
+# -*- coding: utf-8 -*-
+from __future__ import unicode_literals
+
+from django.db import models, migrations
+from archaeological_files.models import FileByDepartment
+
+
+class Migration(migrations.Migration):
+
+ dependencies = [
+ ('archaeological_files', '0002_auto_20170414_2123'),
+ ]
+
+ operations = [
+ migrations.RunSQL(FileByDepartment.CREATE_SQL)
+ ]
diff --git a/archaeological_files/models.py b/archaeological_files/models.py
index 412cceb46..2bd5eba9c 100644
--- a/archaeological_files/models.py
+++ b/archaeological_files/models.py
@@ -554,6 +554,19 @@ class FileByDepartment(models.Model):
"""
Database view for dashboard
"""
+ CREATE_SQL = """
+ CREATE VIEW file_department (id, department_id, file_id) as
+ select town."id", town."departement_id", file_towns."file_id"
+ from ishtar_common_town town
+ inner join archaeological_files_file_towns file_towns
+ on file_towns."town_id"=town."id"
+ order by town."departement_id";
+ CREATE RULE file_department_delete
+ AS ON DELETE TO file_department DO INSTEAD();
+ """
+ DELETE_SQL = """
+ DROP VIEW file_department;
+ """
file = models.ForeignKey(File, verbose_name=_(u"File"))
department = models.ForeignKey(Department, verbose_name=_(u"Department"),
blank=True, null=True)
diff --git a/archaeological_finds/migrations/0003_views.py b/archaeological_finds/migrations/0003_views.py
new file mode 100644
index 000000000..e2edaa206
--- /dev/null
+++ b/archaeological_finds/migrations/0003_views.py
@@ -0,0 +1,19 @@
+# -*- coding: utf-8 -*-
+from __future__ import unicode_literals
+
+from django.db import models, migrations
+from archaeological_finds.models_treatments import FindTreatments, \
+ FindDownstreamTreatments, FindUpstreamTreatments
+
+
+class Migration(migrations.Migration):
+
+ dependencies = [
+ ('archaeological_finds', '0002_auto_20170414_2123'),
+ ]
+
+ operations = [
+ migrations.RunSQL(FindUpstreamTreatments.CREATE_SQL +
+ FindDownstreamTreatments.CREATE_SQL +
+ FindTreatments.CREATE_SQL)
+ ]
diff --git a/archaeological_operations/migrations/0003_views.py b/archaeological_operations/migrations/0003_views.py
new file mode 100644
index 000000000..1b8dd201f
--- /dev/null
+++ b/archaeological_operations/migrations/0003_views.py
@@ -0,0 +1,16 @@
+# -*- coding: utf-8 -*-
+from __future__ import unicode_literals
+
+from django.db import models, migrations
+from archaeological_operations.models import OperationByDepartment
+
+
+class Migration(migrations.Migration):
+
+ dependencies = [
+ ('archaeological_operations', '0002_auto_20170414_2123'),
+ ]
+
+ operations = [
+ migrations.RunSQL(OperationByDepartment.CREATE_SQL)
+ ]
diff --git a/archaeological_operations/models.py b/archaeological_operations/models.py
index bebeba240..0548c92e4 100644
--- a/archaeological_operations/models.py
+++ b/archaeological_operations/models.py
@@ -1,6 +1,6 @@
#!/usr/bin/env python
# -*- coding: utf-8 -*-
-# Copyright (C) 2012-2016 Étienne Loks <etienne.loks_AT_peacefrogsDOTnet>
+# Copyright (C) 2012-2017 Étienne Loks <etienne.loks_AT_peacefrogsDOTnet>
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as
@@ -844,6 +844,22 @@ class OperationByDepartment(models.Model):
"""
Database view for dashboard
"""
+ CREATE_SQL = """
+ CREATE VIEW operation_department (id, department_id, operation_id) as
+ select town."id", town."departement_id",
+ operation_towns."operation_id"
+ from ishtar_common_town town
+ inner join archaeological_operations_operation_towns
+ operation_towns
+ on operation_towns."town_id"=town."id"
+ order by town."departement_id";
+ CREATE RULE operation_department_delete
+ AS ON DELETE TO operation_department DO INSTEAD();
+ """
+ DELETE_SQL = """
+ DROP VIEW operation_department;
+ """
+
operation = models.ForeignKey(Operation, verbose_name=_(u"Operation"))
department = models.ForeignKey(Department, verbose_name=_(u"Department"),
blank=True, null=True)