source: publico/il.spdo/trunk/il/spdo/browser/forms.py @ 5341

Última Alteração nesse arquivo desde 5341 foi 5341, incluída por fabianosantos, 8 anos atrás

Edição de Áreas

File size: 3.1 KB
Linha 
1# -*- coding: utf-8 -*-
2from five import grok
3from zope.interface import implements
4from zope.publisher.interfaces import IPublishTraverse
5
6from plone.z3cform import layout
7from plone.directives import form
8from z3c.form import field
9
10from plone.formwidget.autocomplete import AutocompleteFieldWidget
11from Products.statusmessages.interfaces import IStatusMessage
12from Products.CMFCore.interfaces import ISiteRoot
13from zExceptions import NotFound
14
15from il.spdo.config import MessageFactory as _
16from il.spdo.interfaces import ITipoDocumento, IArea
17from il.spdo import db
18from il.spdo.content import AreaItem
19
20from il.spdo.config import Session
21
22class TipoDocumentoAddForm(form.AddForm):
23    grok.context(ISiteRoot)
24    grok.name('add-tipo-documento')
25    grok.require('zope2.View')
26
27    fields = field.Fields(ITipoDocumento)
28    label = _(u'Adcionar tipo de documento.')
29
30class TipoDocumentoEditForm(form.EditForm):
31    grok.context(ISiteRoot)
32    grok.name('edit-tipo-documento')
33    grok.require('cmf.ManagePortal')
34
35    fields = field.Fields(ITipoDocumento)
36    label = _(u'Editar tipo de documento.')
37
38    def getContent(self):
39        pass   
40
41class AreaAddForm(form.AddForm):
42    grok.context(ISiteRoot)
43    grok.name('add-area')
44    grok.require('zope2.View')
45
46    fields = field.Fields(IArea)
47    label = _(u'Adcionar uma nova área.')
48
49    def createAndAdd(self, data):
50        area = db.Area()
51        area.nome = data['nome']
52        area.chefia_id = data['chefia_id']
53        session = Session()
54        session.add(area)
55        self._finishedAdd = True
56
57    def nextURL(self):
58        message = _(u'Área cadastrada com sucesso.')
59        status = IStatusMessage(self.request)
60        status.addStatusMessage(message, type='info')
61        return self.context.absolute_url()
62
63class AreaEditForm(form.EditForm):
64    implements(IPublishTraverse)
65
66    grok.context(ISiteRoot)
67    grok.name('edit-area')
68    grok.require('cmf.ManagePortal')
69
70    fields = field.Fields(IArea)
71    label = _(u'Editar Área.')
72    area_id = None
73
74    def publishTraverse(self, request, name):
75        if self.area_id is None:
76            self.area_id = int(name)
77            return self
78        else:
79            raise NotFound()
80 
81    def getArea(self):
82        if self.area_id is not None:
83            session = Session()
84            area = session.query(db.Area).get(self.area_id)
85            if area is not None:
86                return area
87        return None
88
89    def getContent(self):
90        return self.getArea()
91
92    def update(self):
93        self.request.set('disable_border', True)
94        area = self.getArea()
95        if area is not None:
96            super(AreaEditForm, self).update()
97            return
98
99        #redirect if area is None
100        message = _(u'Área não localizada.')
101        status = IStatusMessage(self.request)
102        status.addStatusMessage(message, type='info')
103        url = self.context.absolute_url()
104        return self.request.response.redirect(url)
105
106    def applyChanges(self, data):
107        content = self.getArea()
108        if content:
109            for key, value in data.items():
110               setattr(content, key, value)
111            return True
112        return False
Note: Veja TracBrowser para ajuda no uso do navegador do trac.
 

The contents and data of this website are published under license:
Creative Commons 4.0 Brasil - Atribuir Fonte - Compartilhar Igual.