allow entering of survey data for other person; prerequisite: keep URL params in title and breadcrumbs links
This commit is contained in:
parent
60604cd38b
commit
396e17c0dc
5 changed files with 36 additions and 4 deletions
|
@ -252,6 +252,16 @@ class BaseView(GenericView, I18NView, SortableMixin):
|
||||||
result.append(view)
|
result.append(view)
|
||||||
return result
|
return result
|
||||||
|
|
||||||
|
@Lazy
|
||||||
|
def urlParamString(self):
|
||||||
|
return self.getUrlParamString()
|
||||||
|
|
||||||
|
def getUrlParamString(self):
|
||||||
|
qs = self.request.get('QUERY_STRING')
|
||||||
|
if qs:
|
||||||
|
return '?' + qs
|
||||||
|
return ''
|
||||||
|
|
||||||
@Lazy
|
@Lazy
|
||||||
def principalId(self):
|
def principalId(self):
|
||||||
principal = self.request.principal
|
principal = self.request.principal
|
||||||
|
|
|
@ -51,7 +51,7 @@
|
||||||
<h1 tal:define="tabview item/tabview|nothing"
|
<h1 tal:define="tabview item/tabview|nothing"
|
||||||
tal:attributes="ondblclick item/openEditWindow">
|
tal:attributes="ondblclick item/openEditWindow">
|
||||||
<a tal:omit-tag="python: level > 1"
|
<a tal:omit-tag="python: level > 1"
|
||||||
tal:attributes="href request/URL"
|
tal:attributes="href string:${request/URL}${item/urlParamString}"
|
||||||
tal:content="item/title">Title</a>
|
tal:content="item/title">Title</a>
|
||||||
<a title="Show tabular view"
|
<a title="Show tabular view"
|
||||||
i18n:attributes="title"
|
i18n:attributes="title"
|
||||||
|
|
|
@ -120,6 +120,9 @@ class NodeView(BaseView):
|
||||||
url=absoluteURL(p, self.request)))
|
url=absoluteURL(p, self.request)))
|
||||||
if self.virtualTarget:
|
if self.virtualTarget:
|
||||||
data.extend(self.virtualTarget.breadcrumbs())
|
data.extend(self.virtualTarget.breadcrumbs())
|
||||||
|
if data and not '?' in data[-1]['url']:
|
||||||
|
if self.urlParamString:
|
||||||
|
data[-1]['url'] += self.urlParamString
|
||||||
return data
|
return data
|
||||||
|
|
||||||
def viewModes(self):
|
def viewModes(self):
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
#
|
#
|
||||||
# Copyright (c) 2013 Helmut Merz helmutm@cy55.de
|
# Copyright (c) 2015 Helmut Merz helmutm@cy55.de
|
||||||
#
|
#
|
||||||
# This program is free software; you can redistribute it and/or modify
|
# This program is free software; you can redistribute it and/or modify
|
||||||
# it under the terms of the GNU General Public License as published by
|
# it under the terms of the GNU General Public License as published by
|
||||||
|
@ -52,6 +52,16 @@ class SurveyView(ConceptView):
|
||||||
self.registerDojo()
|
self.registerDojo()
|
||||||
return template.macros['survey']
|
return template.macros['survey']
|
||||||
|
|
||||||
|
@Lazy
|
||||||
|
def title(self):
|
||||||
|
title = self.context.title
|
||||||
|
personId = self.request.form.get('person')
|
||||||
|
if personId:
|
||||||
|
person = adapted(getObjectForUid(personId))
|
||||||
|
if person is not None:
|
||||||
|
return '%s: %s' % (title, person.title)
|
||||||
|
return title
|
||||||
|
|
||||||
@Lazy
|
@Lazy
|
||||||
def tabview(self):
|
def tabview(self):
|
||||||
if self.editable:
|
if self.editable:
|
||||||
|
@ -147,6 +157,8 @@ class SurveyView(ConceptView):
|
||||||
if 'submit' not in form:
|
if 'submit' not in form:
|
||||||
return []
|
return []
|
||||||
respManager = Responses(self.context)
|
respManager = Responses(self.context)
|
||||||
|
respManager.personId = (self.request.form.get('person') or
|
||||||
|
respManager.getPersonId())
|
||||||
data = {}
|
data = {}
|
||||||
response = Response(self.adapted, None)
|
response = Response(self.adapted, None)
|
||||||
for key, value in form.items():
|
for key, value in form.items():
|
||||||
|
@ -222,7 +234,10 @@ class SurveyView(ConceptView):
|
||||||
def getValues(self, question):
|
def getValues(self, question):
|
||||||
setting = None
|
setting = None
|
||||||
if self.data is None:
|
if self.data is None:
|
||||||
self.data = Responses(self.context).load()
|
respManager = Responses(self.context)
|
||||||
|
respManager.personId = (self.request.form.get('person') or
|
||||||
|
respManager.getPersonId())
|
||||||
|
self.data = respManager.load()
|
||||||
if self.data:
|
if self.data:
|
||||||
setting = self.data.get(question.uid)
|
setting = self.data.get(question.uid)
|
||||||
if setting is None:
|
if setting is None:
|
||||||
|
|
|
@ -45,7 +45,7 @@
|
||||||
<div class="button" id="show_questionnaire">
|
<div class="button" id="show_questionnaire">
|
||||||
<a href="" xxonclick="back(); return false"
|
<a href="" xxonclick="back(); return false"
|
||||||
i18n:translate=""
|
i18n:translate=""
|
||||||
tal:attributes="href view/virtualTargetUrl">
|
tal:attributes="href string:${request/URL}${item/urlParamString}">
|
||||||
Back to Questionnaire</a>
|
Back to Questionnaire</a>
|
||||||
<br />
|
<br />
|
||||||
</div>
|
</div>
|
||||||
|
@ -67,6 +67,10 @@
|
||||||
</div>
|
</div>
|
||||||
<form method="post">
|
<form method="post">
|
||||||
<table class="listing">
|
<table class="listing">
|
||||||
|
<input type="hidden" name="person"
|
||||||
|
tal:define="personId request/person|nothing"
|
||||||
|
tal:condition="personId"
|
||||||
|
tal:attributes="value personId" />
|
||||||
<tal:group repeat="group item/groups">
|
<tal:group repeat="group item/groups">
|
||||||
<tr>
|
<tr>
|
||||||
<td> </td>
|
<td> </td>
|
||||||
|
|
Loading…
Add table
Reference in a new issue