Started on edit timeline
authorSverre Rabbelier <srabbelier@gmail.com>
Wed, 07 Jan 2009 21:57:12 +0000
changeset 776 f86a76f52bf4
parent 775 d18d286df40f
child 777 16dcdb8f3357
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
app/gsoc/logic/__init__.py
app/gsoc/logic/models/__init__.py
app/gsoc/logic/models/timeline.py
app/soc/logic/models/timeline.py
app/soc/models/timeline.py
app/soc/views/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" <sverre@rabbelier.nl>',
+  ]
+
+
+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()
--- 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()
--- 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'))
 
--- 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/(?P<access_type>edit)/%(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)