/
add.py
34 lines (26 loc) · 1.02 KB
/
add.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
# coding: utf-8
# This code was developed for http://bluebream.ru by its community and
# placed under Public Domain.
""" Предложить ответ.
"""
from z3c.form import form, field
from zope.securitypolicy.interfaces import IPrincipalRoleManager
from zope.container.interfaces import INameChooser
from bbru.answers import QuestionAnswer, IQuestionAnswer
class Ajax(form.AddForm):
fields = field.Fields(IQuestionAnswer)
def create(self, data):
ob = QuestionAnswer()
form.applyChanges(self, ob, data)
return ob
def add(self, ob):
name = INameChooser(self.context).chooseName(u"", ob)
self.context[name] = ob
# сделать создателя владельцем ответа
IPrincipalRoleManager(ob).assignRoleToPrincipal(
'bbru.answers.Respondent', self.request.principal.id)
def render(self):
if self._finishedAdd:
self.request.response.setStatus(202)
return ""
return super(Ajax, self).render()