Make db_model/db_tagtype to properly separate tags/aliases/perms. Needs a schema migration.
This commit is contained in:
parent
82866a7dda
commit
f8e1fb6826
2 changed files with 8 additions and 7 deletions
|
|
@ -278,7 +278,6 @@ class TypedObjectManager(idmapper.manager.SharedMemoryManager):
|
||||||
query.append(("db_tags__db_key", key.lower()))
|
query.append(("db_tags__db_key", key.lower()))
|
||||||
if category:
|
if category:
|
||||||
query.append(("db_tags__db_category", category.lower()))
|
query.append(("db_tags__db_category", category.lower()))
|
||||||
print "get_by_tag query:", query
|
|
||||||
return self.filter(**dict(query))
|
return self.filter(**dict(query))
|
||||||
|
|
||||||
def get_by_permission(self, key=None, category=None):
|
def get_by_permission(self, key=None, category=None):
|
||||||
|
|
|
||||||
|
|
@ -303,8 +303,10 @@ class TagHandler(object):
|
||||||
category = category.strip().lower() if category is not None else None
|
category = category.strip().lower() if category is not None else None
|
||||||
|
|
||||||
# This does not delete the tag object itself. Maybe it should do
|
# This does not delete the tag object itself. Maybe it should do
|
||||||
# that when no objects reference the tag anymore (how to check)?
|
# that when no objects reference the tag anymore (but how to check)?
|
||||||
tagobj = self.obj.db_tags.filter(db_key=tagstr, db_category=category)
|
# For now, tags are never deleted, only their connection to objects.
|
||||||
|
tagobj = getattr(self, self._m2m_fieldname).filter(db_key=tagstr, db_category=category,
|
||||||
|
db_model=self._model, db_tagtype=self._tagtype)
|
||||||
if tagobj:
|
if tagobj:
|
||||||
getattr(self.obj, self._m2m_fieldname).remove(tagobj[0])
|
getattr(self.obj, self._m2m_fieldname).remove(tagobj[0])
|
||||||
self._delcache(key, category)
|
self._delcache(key, category)
|
||||||
|
|
@ -319,10 +321,10 @@ class TagHandler(object):
|
||||||
category.
|
category.
|
||||||
|
|
||||||
"""
|
"""
|
||||||
if not category:
|
query = {"db_model": self._model, "db_tagtype": self._tagtype}
|
||||||
getattr(self.obj, self._m2m_fieldname).clear()
|
if category:
|
||||||
else:
|
query["db_category"] = category
|
||||||
getattr(self.obj, self._m2m_fieldname).filter(db_category=category).delete()
|
getattr(self.obj, self._m2m_fieldname).filter(**query).delete()
|
||||||
self._cache = {}
|
self._cache = {}
|
||||||
self._catcache = {}
|
self._catcache = {}
|
||||||
self._cache_complete = False
|
self._cache_complete = False
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue