diff options
author | René 'Necoro' Neumann <necoro@necoro.net> | 2017-03-11 15:22:33 +0100 |
---|---|---|
committer | René 'Necoro' Neumann <necoro@necoro.net> | 2017-03-11 15:22:33 +0100 |
commit | 5b25e7acbce954784745e0f8057731c6a3939c37 (patch) | |
tree | ecdd7e30cd3612b277986af5c3698fc7ea84961c | |
parent | 270bf999e8cfed700c3639b564f17135e67238a2 (diff) | |
download | archivist-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.py | 18 |
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: |