From 72bdc3b37f3ebc0472296ab031ffe86e779746e3 Mon Sep 17 00:00:00 2001 From: Griatch Date: Mon, 2 Dec 2013 13:00:14 +0100 Subject: [PATCH] Created wrappers for creating Tags. --- ev.py | 10 ++++++++-- src/utils/create.py | 14 ++++++++++++++ 2 files changed, 22 insertions(+), 2 deletions(-) diff --git a/ev.py b/ev.py index 0ec03eab52..04596a0c92 100644 --- a/ev.py +++ b/ev.py @@ -144,6 +144,7 @@ from src.scripts.scripts import Script # comms from src.comms.models import Msg, ChannelDB, PlayerChannelConnection, ExternalChannelConnection +from src.comms.comms import Channel # objects from src.objects.objects import Object, Character, Room, Exit @@ -210,8 +211,10 @@ class DBmanagers(_EvContainer): from src.comms.models import Msg, ChannelDB, PlayerChannelConnection, ExternalChannelConnection from src.objects.models import ObjectDB from src.server.models import ServerConfig + from src.typeclasses.models import Tag, Attribute - helpentry = HelpEntry.objects + # create container's properties + helpentries = HelpEntry.objects players = PlayerDB.objects scripts = ScriptDB.objects msgs = Msg.objects @@ -220,8 +223,11 @@ class DBmanagers(_EvContainer): externalconnections = ExternalChannelConnection.objects objects = ObjectDB.objects serverconfigs = ServerConfig.objects + attributes = Attribute.objects + tags = Tag.objects + # remove these so they are not visible as properties del HelpEntry, PlayerDB, ScriptDB, Msg, ChannelDB, PlayerChannelConnection, - del ExternalChannelConnection, ObjectDB, ServerConfig + del ExternalChannelConnection, ObjectDB, ServerConfig, Tags, Attributes managers = DBmanagers() del DBmanagers diff --git a/src/utils/create.py b/src/utils/create.py index ecf4b7c7b8..e7dc2abdae 100644 --- a/src/utils/create.py +++ b/src/utils/create.py @@ -40,6 +40,7 @@ _PlayerDB = None _to_object = None _ChannelDB = None _channelhandler = None +_Tag = None # limit symbol import from API @@ -398,6 +399,19 @@ def create_channel(key, aliases=None, desc=None, channel = create_channel +def create_tag(self, key=None, category=None, data=None): + """ + Create a tag. This makes sure to create case-insensitive tags. + Note that if the exact same tag configuration (key+category) + exists, it will be re-used. A data keyword will overwrite existing + data on a tag (it is not part of what makes the tag unique). + """ + global _Tag + if not _Tag: + from src.typeclasses.models import Tag as _Tag + return _Tag.objects.create_tag(key=key, category=category, data=data) + + # # Player creation methods #