diff options
author | Étienne Loks <etienne.loks@iggdrasil.net> | 2017-04-18 22:59:43 +0200 |
---|---|---|
committer | Étienne Loks <etienne.loks@iggdrasil.net> | 2017-04-18 22:59:43 +0200 |
commit | e886e8a1a79880bed9cd0ec480a0658ae93ad400 (patch) | |
tree | e6da7c67ae8c7a624cbb49399ae9f8b45be8ea30 | |
parent | c5571208a3d7a50d24226132d6ff77f8edd03921 (diff) | |
download | Ishtar-e886e8a1a79880bed9cd0ec480a0658ae93ad400.tar.bz2 Ishtar-e886e8a1a79880bed9cd0ec480a0658ae93ad400.zip |
New migrations: add views
-rw-r--r-- | archaeological_context_records/migrations/0004_views.py | 15 | ||||
-rw-r--r-- | archaeological_context_records/models.py | 5 | ||||
-rw-r--r-- | archaeological_files/migrations/0003_views.py | 16 | ||||
-rw-r--r-- | archaeological_files/models.py | 13 | ||||
-rw-r--r-- | archaeological_finds/migrations/0003_views.py | 19 | ||||
-rw-r--r-- | archaeological_operations/migrations/0003_views.py | 16 | ||||
-rw-r--r-- | archaeological_operations/models.py | 18 |
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) |