summaryrefslogtreecommitdiff
path: root/archaeological_context_records/models.py
diff options
context:
space:
mode:
Diffstat (limited to 'archaeological_context_records/models.py')
-rw-r--r--archaeological_context_records/models.py27
1 files changed, 26 insertions, 1 deletions
diff --git a/archaeological_context_records/models.py b/archaeological_context_records/models.py
index 2654788f7..a8c6a1dcc 100644
--- a/archaeological_context_records/models.py
+++ b/archaeological_context_records/models.py
@@ -1,6 +1,6 @@
#!/usr/bin/env python
# -*- coding: utf-8 -*-
-# Copyright (C) 2012-2013 Étienne Loks <etienne.loks_AT_peacefrogsDOTnet>
+# Copyright (C) 2012-2015 É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
@@ -133,6 +133,9 @@ class ContextRecord(BaseHistorizedItem, OwnPerms, ShortMenuItem):
null=True, verbose_name=_(u"Identification"),)
activity = models.ForeignKey(ActivityType,blank=True, null=True,
verbose_name=_(u"Activity"),)
+ related_context_records = models.ManyToManyField('ContextRecord',
+ through='RecordRelations',
+ blank=True, null=True)
history = HistoricalRecords()
class Meta:
@@ -238,6 +241,28 @@ class ContextRecord(BaseHistorizedItem, OwnPerms, ShortMenuItem):
from archaeological_finds.models import FindSource
return FindSource.objects.filter(find__base_finds__context_record=self)
+class RelationType(GeneralType):
+ order = models.IntegerField(_(u"Order"), default=1)
+ symmetrical = models.BooleanField(_(u"Symmetrical"))
+ inverse_relation = models.ForeignKey('RelationType',
+ verbose_name=_(u"Inverse relation"), blank=True, null=True)
+
+ class Meta:
+ verbose_name = _(u"Relation type")
+ verbose_name_plural = _(u"Relation types")
+ ordering = ('order',)
+
+class RecordRelations(models.Model):
+ left_record = models.ForeignKey(ContextRecord,
+ related_name='left_relations')
+ right_record = models.ForeignKey(ContextRecord,
+ related_name='right_relations')
+ relation_type = models.ForeignKey(RelationType)
+
+ class Meta:
+ verbose_name = _(u"Record relation")
+ verbose_name_plural = _(u"Record relations")
+
class ContextRecordSource(Source):
class Meta:
verbose_name = _(u"Context record documentation")