summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRené 'Necoro' Neumann <necoro@necoro.net>2017-03-11 15:22:33 +0100
committerRené 'Necoro' Neumann <necoro@necoro.net>2017-03-11 15:22:33 +0100
commit5b25e7acbce954784745e0f8057731c6a3939c37 (patch)
treeecdd7e30cd3612b277986af5c3698fc7ea84961c
parent270bf999e8cfed700c3639b564f17135e67238a2 (diff)
downloadarchivist-5b25e7acbce954784745e0f8057731c6a3939c37.tar.gz
archivist-5b25e7acbce954784745e0f8057731c6a3939c37.tar.bz2
archivist-5b25e7acbce954784745e0f8057731c6a3939c37.zip
A tag with a prefix implies the prefixes default tag
-rw-r--r--archivist/cli.py18
1 files changed, 13 insertions, 5 deletions
diff --git a/archivist/cli.py b/archivist/cli.py
index 1455a5d..4fd78e4 100644
--- a/archivist/cli.py
+++ b/archivist/cli.py
@@ -83,9 +83,9 @@ def list_prefixes():
def add_prefix(name, description):
from .model import Prefix
- prefix, created = Prefix.create_or_get(name = name, description = description)
- if not created:
- print("Prefix already existed:", prefix)
+ prefix = Prefix.try_create(name = name, description = description)
+ if prefix is None:
+ print("Prefix already existed:", name)
def prefix_tag_name(name, prefix=None):
if prefix:
@@ -146,15 +146,23 @@ def edit_prefix(name, implies, description):
def create_tag(name, description=None):
- from .model import Tag, Prefix, db
+ from .model import Tag, TagImplications, Prefix, db
+
with db.atomic():
if name.prefix:
prefix, created = Prefix.get_or_create(name = name.prefix)
if not created and prefix.virtual:
raise click.UsageError("Prefix '%s' is not allowed to carry additional tags." % name.prefix)
+ else:
+ prefix = None
+
+ tag, created = Tag.create_or_get(name = name.tag, prefix = prefix, description = description)
+
+ if prefix is not None:
+ TagImplications.try_create(tag = tag, implies_tag = prefix.default_tag)
- return Tag.create_or_get(name = name.tag, prefix = name.prefix, description = description)
+ return tag, created
def fetch_tags(tag_list, ignore_missing=False):
if not tag_list: