183 |
183 |
|
184 |
184 |
return r.getvalue()
|
185 |
185 |
|
|
186 |
def deja_vu(self):
|
|
187 |
user = get_request().user
|
|
188 |
if not self.filled.evolution or not user:
|
|
189 |
return False
|
|
190 |
for evo in self.filled.evolution:
|
|
191 |
if evo.who == user.id or (evo.who == '_submitter' and self.filled.is_submitter(user)):
|
|
192 |
return True
|
|
193 |
return False
|
|
194 |
|
186 |
195 |
def _q_index(self):
|
187 |
196 |
mine = self.check_auth()
|
188 |
197 |
get_logger().info('form %s - id: %s - view' % (self.formdef.name, self.filled.id))
|
... | ... | |
191 |
200 |
|
192 |
201 |
r = TemplateIO(html=True)
|
193 |
202 |
|
|
203 |
deja_vu = self.deja_vu()
|
194 |
204 |
r += self.receipt_message(mine=mine)
|
195 |
|
r += self.receipt()
|
196 |
|
r += self.history()
|
|
205 |
r += self.receipt(deja_vu=deja_vu)
|
|
206 |
r += self.history(deja_vu=deja_vu)
|
197 |
207 |
|
198 |
208 |
form = None
|
199 |
209 |
|
... | ... | |
233 |
243 |
r += htmltext('</div>')
|
234 |
244 |
return r.getvalue()
|
235 |
245 |
|
236 |
|
def history(self):
|
|
246 |
def history(self, deja_vu=False):
|
237 |
247 |
if not self.filled.evolution:
|
238 |
248 |
return
|
239 |
249 |
if not self.formdef.is_user_allowed_read_status_and_history(get_request().user, self.filled):
|
240 |
250 |
return
|
241 |
251 |
r = TemplateIO(html=True)
|
242 |
252 |
r += htmltext('<div class="bo-block" id="evolution-log">')
|
243 |
|
r += htmltext('<h2 class="foldable">%s</h2>') % _('Log')
|
|
253 |
r += htmltext('<h2 class="foldable%s">%%s</h2>' % (deja_vu and ' folded' or '')) % _('Log')
|
244 |
254 |
r += htmltext('<ul id="evolutions">')
|
245 |
255 |
hidden = False
|
246 |
256 |
previous_status = None
|
247 |
|
for evo in self.filled.evolution:
|
|
257 |
for evo_number, evo in enumerate(self.filled.evolution, 1):
|
248 |
258 |
if evo.status:
|
249 |
259 |
wf_status = self.filled.get_status(evo.status)
|
250 |
260 |
if wf_status and not wf_status.is_visible(self.filled, get_request().user):
|
... | ... | |
276 |
286 |
except KeyError:
|
277 |
287 |
pass
|
278 |
288 |
|
|
289 |
if evo_number == len(self.filled.evolution):
|
|
290 |
r += htmltext('</ul><ul id="evolution-last">')
|
|
291 |
|
279 |
292 |
r += htmltext('<li class="%s">' % klass)
|
280 |
293 |
r += htmltext('<div>')
|
281 |
294 |
|
... | ... | |
322 |
335 |
|
323 |
336 |
r += htmltext('</div>')
|
324 |
337 |
r += htmltext('</li>')
|
|
338 |
|
325 |
339 |
r += htmltext('</ul>')
|
326 |
340 |
r += htmltext('</div>') # .bo-block #evolution-log
|
327 |
341 |
return r.getvalue()
|
... | ... | |
338 |
352 |
raise errors.AccessForbiddenError()
|
339 |
353 |
return user
|
340 |
354 |
|
341 |
|
def receipt(self,
|
342 |
|
always_include_user = False,
|
343 |
|
show_status = True,
|
344 |
|
form_url = ''):
|
|
355 |
def receipt(self, always_include_user=False, show_status=True, form_url='', deja_vu=False):
|
345 |
356 |
user = get_request().user
|
346 |
357 |
if not always_include_user and get_request().user and \
|
347 |
358 |
get_request().user.id == self.filled.user_id:
|
... | ... | |
363 |
374 |
|
364 |
375 |
r = TemplateIO(html=True)
|
365 |
376 |
r += htmltext('<div class="bo-block" id="summary">')
|
366 |
|
r += htmltext('<h2 class="foldable">%s</h2>') % _('Summary')
|
|
377 |
r += htmltext('<h2 class="foldable%s">%%s</h2>' %
|
|
378 |
(deja_vu and ' folded' or '')) % _('Summary')
|
367 |
379 |
r += htmltext('<div class="dataview">')
|
368 |
380 |
|
369 |
381 |
if user:
|
... | ... | |
483 |
495 |
'date': self.filled.anonymised.strftime(misc.date_format())}
|
484 |
496 |
r += htmltext('</div>')
|
485 |
497 |
|
486 |
|
r += self.receipt(always_include_user = True)
|
|
498 |
deja_vu = self.deja_vu()
|
|
499 |
r += self.receipt(always_include_user=True, deja_vu=deja_vu)
|
487 |
500 |
|
488 |
501 |
if self.formdef.workflow:
|
489 |
502 |
r += htmltext(self.filled.display_workflow_message())
|
490 |
503 |
|
491 |
|
r += self.history()
|
|
504 |
r += self.history(deja_vu=deja_vu)
|
492 |
505 |
|
493 |
506 |
if form:
|
494 |
507 |
r += form.render()
|