Created wrappers for creating Tags.

This commit is contained in:
Griatch 2013-12-02 13:00:14 +01:00
parent f4c9c18a66
commit 72bdc3b37f
2 changed files with 22 additions and 2 deletions

10
ev.py
View file

@ -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

View file

@ -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
#