Ignore:
Timestamp:
8 Jul 2008, 22:06:42 (16 years ago)
Author:
hraban
Message:

still problems with inheritance and interfaces; works partly; still no tests, sorry...

File:
1 edited

Legend:

Unmodified
Added
Removed
  • waeup/branches/hraban/src/waeup/basecontainer.py

    r3562 r3566  
    22import os
    33from waeup.interfaces import IBaseContainer
    4 #from waeup.baseitem import BaseItem
    5 from waeup.viewlets import MainArea, Index, Add, Edit
     4import waeup.viewlets as vw
    65from zope.component import getMultiAdapter
    76
     
    98    """
    109    The base container. This is a stub for now. It can have
    11     base methods and templates attached to it
     10    base methods attached to it
    1211    """
    1312    grok.implements(IBaseContainer)
     13    id = 'base'
    1414    name = u"BaseContainer"
    1515    childClass = None
    1616    specialActions = []
     17   
     18    def __init__(self, **kwargs):
     19        super(BaseContainer, self).__init__()
     20        self.__dict__.update(kwargs)
    1721   
    1822class Content(grok.Viewlet):
     
    2024    Base viewlet
    2125    """
    22     grok.viewletmanager(MainArea)
    23     grok.view(Index)
     26    grok.viewletmanager(vw.MainArea)
     27    grok.view(vw.Index)
    2428    #grok.order(1)
    2529
     
    3539        obj = self.context.childClass(**data)
    3640        try:
    37             name = data['name'].lower().replace(' ', '_')
    38             self.context[name] = obj
     41            id = data['id'].lower()
     42            self.context[id] = obj
    3943        except Exception, ex:
    4044            print ex
    4145            print data
    42         self.redirect(self.url())
     46            raise ex
     47        self.redirect(self.url('.'))
    4348
    44 class Add(grok.Viewlet):
    45     grok.viewletmanager(MainArea)
     49class EditForm(grok.EditForm):
     50    template = grok.PageTemplate(filename=os.path.join('basecontainer_templates', 'edit_form.pt'))
     51   
     52    def update(self):
     53        self.form_fields = grok.AutoFields(self.context)
     54        grok.EditForm.update(self)
     55       
     56    def handle_edit_action(self, **data):
     57        grok.EditForm.handle_edit_action(self, **data)
     58        self.redirect(self.url('@@index'))
     59
     60class AddViewlet(grok.Viewlet):
     61    grok.viewletmanager(vw.MainArea)
    4662    grok.context(IBaseContainer)
    47     grok.view(Add)
     63    grok.view(vw.Add)
     64    #grok.name('add')
    4865    #grok.order(2)
    4966
    5067    def update(self):
    51         self.form = getMultiAdapter((self.context, self.request),
    52                                     name='addform')
     68        self.form = getMultiAdapter((self.context, self.request), name='addform')
    5369        self.form.update_form()
    5470
    5571    def render(self):
    5672        return self.form.render()
     73
     74class EditViewlet(grok.Viewlet):
     75    grok.viewletmanager(vw.MainArea)
     76    grok.context(IBaseContainer)
     77    grok.view(vw.Edit)
     78    #grok.name('edit')
     79    #grok.order(2)
     80
     81    def update(self):
     82        self.form = getMultiAdapter((self.context, self.request), name='editform')
     83        self.form.update_form()
     84
     85    def render(self):
     86        return self.form.render()
Note: See TracChangeset for help on using the changeset viewer.