summaryrefslogtreecommitdiff
path: root/archivist/model.py
diff options
context:
space:
mode:
Diffstat (limited to 'archivist/model.py')
-rw-r--r--archivist/model.py15
1 files changed, 15 insertions, 0 deletions
diff --git a/archivist/model.py b/archivist/model.py
index 375f13d..fa24304 100644
--- a/archivist/model.py
+++ b/archivist/model.py
@@ -65,6 +65,16 @@ class Prefix(BaseModel):
virtual = BooleanField(default = False)
description = CharField(null=True)
+ @classmethod
+ @db.atomic()
+ def create(cls, **query):
+ inst = super().create(**query)
+ Tag.create_prefix_default(inst)
+
+ @property
+ def default_tag(self):
+ return Tag.get(prefix = self, default = True)
+
def __str__ (self):
return self.name
@@ -77,6 +87,11 @@ class Tag(BaseModel):
name = CharField()
prefix = ForeignKeyField(Prefix, null=True, related_name = 'tag', db_column = 'prefix')
description = CharField(null=True)
+ default = BooleanField(default = False)
+
+ @classmethod
+ def create_prefix_default(cls,prefix):
+ return cls.create(name = '*', prefix = prefix, description = "Default for prefix '%s'" % prefix, default = True)
@hybrid_method
def matches(self, prefix, name):