# HG changeset patch # User Sverre Rabbelier # Date 1231365432 0 # Node ID f86a76f52bf48a892ac362a876df62e328f4bcd8 # Parent d18d286df40ff9d173cd0ae4caaf7b6c43ce8ac9 Started on edit timeline Added a gsoc timeline logic module. Also added a scope_path as the key_field to timeline. Updated the django_paterns to only include the edit field and removed link_id as dynafield. Patch by: Sverre Rabbelier diff -r d18d286df40f -r f86a76f52bf4 app/gsoc/logic/__init__.py diff -r d18d286df40f -r f86a76f52bf4 app/gsoc/logic/models/__init__.py diff -r d18d286df40f -r f86a76f52bf4 app/gsoc/logic/models/timeline.py --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/app/gsoc/logic/models/timeline.py Wed Jan 07 21:57:12 2009 +0000 @@ -0,0 +1,43 @@ +#!/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. + +"""Timeline (Model) query functions. +""" + +__authors__ = [ + '"Sverre Rabbelier" ', + ] + + +from soc.logic.models import timeline as timeline_logic +from soc.logic.models import program as program_logic + +import gsoc.models.timeline + + +class Logic(timeline_logic.Logic): + """Logic methods for the Timeline model + """ + + def __init__(self, model=gsoc.models.timeline.Timeline, + base_model=None, scope_logic=program_logic): + """Defines the name, key_name and model for this entity. + """ + + super(Logic, self).__init__(model=model, base_model=base_model, + scope_logic=scope_logic) + +logic = Logic() diff -r d18d286df40f -r f86a76f52bf4 app/soc/logic/models/timeline.py --- a/app/soc/logic/models/timeline.py Wed Jan 07 20:56:50 2009 +0000 +++ b/app/soc/logic/models/timeline.py Wed Jan 07 21:57:12 2009 +0000 @@ -23,6 +23,7 @@ from soc.logic.models import base +from soc.logic.models import program as program_logic import soc.models.timeline @@ -32,12 +33,35 @@ """ def __init__(self, model=soc.models.timeline.Timeline, - base_model=None, scope_logic=None): + base_model=None, scope_logic=program_logic): """Defines the name, key_name and model for this entity. """ super(Logic, self).__init__(model=model, base_model=base_model, scope_logic=scope_logic) + def getScopeDepth(self): + """See base.Logic.getScopeDepth + """ + + return 3 + + def getKeyValues(self, entity): + """See base.Logic.getKeyNameValues. + """ + + return [entity.scope_path] + + def getKeyValuesFromFields(self, fields): + """See base.Logic.getKeyValuesFromFields. + """ + + return [fields['scope_path']] + + def getKeyFieldNames(self): + """See base.Logic.getKeyFieldNames. + """ + + return ['scope_path'] logic = Logic() diff -r d18d286df40f -r f86a76f52bf4 app/soc/models/timeline.py --- a/app/soc/models/timeline.py Wed Jan 07 20:56:50 2009 +0000 +++ b/app/soc/models/timeline.py Wed Jan 07 21:57:12 2009 +0000 @@ -33,6 +33,9 @@ """The Timeline Model, representing the timeline for a Program. """ + scope_path = db.StringProperty(required=True, + verbose_name=ugettext_lazy('Scope Path')) + program_start = db.DateTimeProperty( verbose_name=ugettext_lazy('Program Start date')) diff -r d18d286df40f -r f86a76f52bf4 app/soc/views/models/timeline.py --- a/app/soc/views/models/timeline.py Wed Jan 07 20:56:50 2009 +0000 +++ b/app/soc/views/models/timeline.py Wed Jan 07 21:57:12 2009 +0000 @@ -51,6 +51,13 @@ new_params['url_name'] = "timeline" new_params['module_name'] = "timeline" + patterns = [(r'^%(url_name)s/(?Pedit)/%(key_fields)s$', + 'soc.views.models.%(module_name)s.edit', "Edit %(name_short)s")] + + new_params['django_patterns_defaults'] = patterns + + new_params['edit_dynafields']= [] + params = dicts.merge(params, new_params) super(View, self).__init__(params=params)