# HG changeset patch # User Sverre Rabbelier # Date 1228573405 0 # Node ID b982d917560527f1b1638c75365b08a4c3b3ffab # Parent c8f24e3078b86ed4b674164fc7be49a19bf1457d Added a linkable logic module The linkable logic module is used to signal the fact that the scope of an entity can be any linkable. Patch by: Sverre Rabbelier diff -r c8f24e3078b8 -r b982d9175605 app/soc/logic/models/document.py --- a/app/soc/logic/models/document.py Sat Dec 06 12:13:19 2008 +0000 +++ b/app/soc/logic/models/document.py Sat Dec 06 14:23:25 2008 +0000 @@ -23,6 +23,7 @@ from soc.logic.models import work +from soc.logic.models import linkable as linkable_logic import soc.models.document import soc.models.work @@ -33,11 +34,12 @@ """ def __init__(self, model=soc.models.document.Document, - base_model=soc.models.work.Work): + base_model=soc.models.work.Work, scope_logic=linkable_logic): """Defines the name, key_name and model for this entity. """ - super(Logic, self).__init__(model=model, base_model=base_model) + super(Logic, self).__init__(model=model, base_model=base_model, + scope_logic=scope_logic) logic = Logic() diff -r c8f24e3078b8 -r b982d9175605 app/soc/logic/models/linkable.py --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/app/soc/logic/models/linkable.py Sat Dec 06 14:23:25 2008 +0000 @@ -0,0 +1,54 @@ +#!/usr/bin/python2.5 +# +# Copyright 2008 the Melange authors. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +"""Linkable (Model) query functions. +""" + +__authors__ = [ + '"Sverre Rabbelier" ', + ] + + +from soc.logic.models import base + +import soc.models.linkable + + +class Logic(base.Logic): + """Logic methods for the Linkable model. + + Note: Logic classes should not inherit from this class, instead + it is meant to be referred to with scope_logic. + """ + + def __init__(self): + """Defines the name, key_name and model for this entity. + """ + + super(Logic, self).__init__(soc.models.linkable.Linkable) + + def getScopeDepth(self): + """Returns the scope depth for this entity + + As it is impossible to determine the scope depth of a Linkable, + None is returned. This causes the scope regexp to match a scope + with an arbitrary depth. + """ + + return None + + +logic = Logic() diff -r c8f24e3078b8 -r b982d9175605 app/soc/logic/models/presence.py --- a/app/soc/logic/models/presence.py Sat Dec 06 12:13:19 2008 +0000 +++ b/app/soc/logic/models/presence.py Sat Dec 06 14:23:25 2008 +0000 @@ -24,6 +24,7 @@ from soc.logic.models import base +from soc.logic.models import linkable as linkable_logic import soc.models.presence @@ -33,7 +34,7 @@ """ def __init__(self, model=soc.models.presence.Presence, - base_model=None, scope_logic=None): + base_model=None, scope_logic=linkable_logic): """Defines the name, key_name and model for this entity. """ diff -r c8f24e3078b8 -r b982d9175605 app/soc/logic/models/work.py --- a/app/soc/logic/models/work.py Sat Dec 06 12:13:19 2008 +0000 +++ b/app/soc/logic/models/work.py Sat Dec 06 14:23:25 2008 +0000 @@ -32,11 +32,13 @@ """Logic methods for the Work model. """ - def __init__(self, model=soc.models.work.Work, base_model=None): + def __init__(self, model=soc.models.work.Work, + base_model=None, scope_logic=None): """Defines the name, key_name and model for this entity. """ - super(Logic, self).__init__(model, base_model=base_model) + super(Logic, self).__init__(model, base_model=base_model, + scope_logic=scope_logic) logic = Logic()