diff options
Diffstat (limited to 'archaeological_context_records/models.py')
-rw-r--r-- | archaeological_context_records/models.py | 27 |
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") |