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) | ||||
|         return result | ||||
| 
 | ||||
|     @Lazy | ||||
|     def urlParamString(self): | ||||
|         return self.getUrlParamString() | ||||
| 
 | ||||
|     def getUrlParamString(self): | ||||
|         qs = self.request.get('QUERY_STRING') | ||||
|         if qs: | ||||
|             return '?' + qs | ||||
|         return '' | ||||
| 
 | ||||
|     @Lazy | ||||
|     def principalId(self): | ||||
|         principal = self.request.principal | ||||
|  |  | |||
|  | @ -51,7 +51,7 @@ | |||
|     <h1 tal:define="tabview item/tabview|nothing" | ||||
|         tal:attributes="ondblclick item/openEditWindow"> | ||||
|       <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> | ||||
|       <a title="Show tabular view" | ||||
|          i18n:attributes="title" | ||||
|  |  | |||
|  | @ -120,6 +120,9 @@ class NodeView(BaseView): | |||
|                                     url=absoluteURL(p, self.request))) | ||||
|         if self.virtualTarget: | ||||
|             data.extend(self.virtualTarget.breadcrumbs()) | ||||
|         if data and not '?' in data[-1]['url']: | ||||
|             if self.urlParamString: | ||||
|                 data[-1]['url'] += self.urlParamString | ||||
|         return data | ||||
| 
 | ||||
|     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 | ||||
| #  it under the terms of the GNU General Public License as published by | ||||
|  | @ -52,6 +52,16 @@ class SurveyView(ConceptView): | |||
|         self.registerDojo() | ||||
|         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 | ||||
|     def tabview(self): | ||||
|         if self.editable: | ||||
|  | @ -147,6 +157,8 @@ class SurveyView(ConceptView): | |||
|         if 'submit' not in form: | ||||
|             return [] | ||||
|         respManager = Responses(self.context) | ||||
|         respManager.personId = (self.request.form.get('person') or  | ||||
|                                 respManager.getPersonId()) | ||||
|         data = {} | ||||
|         response = Response(self.adapted, None) | ||||
|         for key, value in form.items(): | ||||
|  | @ -222,7 +234,10 @@ class SurveyView(ConceptView): | |||
|     def getValues(self, question): | ||||
|         setting = 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: | ||||
|             setting = self.data.get(question.uid) | ||||
|         if setting is None: | ||||
|  |  | |||
|  | @ -45,7 +45,7 @@ | |||
|     <div class="button" id="show_questionnaire"> | ||||
|       <a href="" xxonclick="back(); return false" | ||||
|          i18n:translate="" | ||||
|          tal:attributes="href view/virtualTargetUrl"> | ||||
|          tal:attributes="href string:${request/URL}${item/urlParamString}"> | ||||
|         Back to Questionnaire</a> | ||||
|       <br /> | ||||
|     </div> | ||||
|  | @ -67,6 +67,10 @@ | |||
|     </div> | ||||
|     <form method="post"> | ||||
|       <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"> | ||||
|           <tr> | ||||
|             <td> </td> | ||||
|  |  | |||
		Loading…
	
	Add table
		
		Reference in a new issue