app/soc/logic/models/program.py
changeset 2812 9280179e34fd
parent 2811 c8901482dc9c
--- a/app/soc/logic/models/program.py	Wed Aug 26 18:31:19 2009 +0200
+++ b/app/soc/logic/models/program.py	Wed Aug 26 18:37:35 2009 +0200
@@ -18,6 +18,7 @@
 """
 
 __authors__ = [
+    '"Madhusudan.C.S" <madhusudancs@gmail.com>',
     '"Sverre Rabbelier" <sverre@rabbelier.nl>',
     '"Lennard de Rijk" <ljvderijk@gmail.com>',
   ]
@@ -26,7 +27,6 @@
 from soc.logic.models import presence_with_tos
 from soc.logic.models import sponsor as sponsor_logic
 
-import soc.logic.models.timeline
 import soc.models.program
 
 from gsoc.logic.models.timeline import logic as gsoc_timeline_logic
@@ -36,10 +36,6 @@
   """Logic methods for the Program model.
   """
 
-  TIMELINE_LOGIC = {'gsoc' : gsoc.logic.models.timeline.logic,
-                    'ghop' : soc.logic.models.timeline.logic}
-
-
   def __init__(self, model=soc.models.program.Program, 
                base_model=None, scope_logic=sponsor_logic,
                timeline_logic=gsoc_timeline_logic):
@@ -51,5 +47,18 @@
     super(Logic, self).__init__(model=model, base_model=base_model,
                                 scope_logic=scope_logic)
 
+  def createTimelineForType(self, fields):
+    """Creates and stores a timeline model for the given type of program.
+    """
+
+    properties = self.timeline_logic.getKeyFieldsFromFields(fields)
+    key_name = self.timeline_logic.getKeyNameFromFields(properties)
+
+    properties['scope'] = fields['scope']
+
+    timeline = self.timeline_logic.updateOrCreateFromKeyName(properties,
+                                                             key_name)
+    return timeline
+
 
 logic = Logic()