appy.gen: added method wrapper.search1 that returns a single result (which is the only difference with wrapper.search); bugfix while getting objects from the catalog (bypass security when called from code).
This commit is contained in:
		
							parent
							
								
									cb53c6b9b2
								
							
						
					
					
						commit
						0b6d2d2165
					
				
					 5 changed files with 17 additions and 11 deletions
				
			
		|  | @ -206,7 +206,7 @@ class ToolMixin(BaseMixin): | |||
|         if not res: return | ||||
|         res = res[0] | ||||
|         if brain: return res | ||||
|         res = res.getObject() | ||||
|         res = res._unrestrictedGetObject() | ||||
|         if not appy: return res | ||||
|         return res.appy() | ||||
| 
 | ||||
|  |  | |||
|  | @ -846,9 +846,9 @@ class BaseMixin: | |||
|         self.appy().sort(fieldName, sortKey=sortKey, reverse=reverse) | ||||
| 
 | ||||
|     def notifyWorkflowCreated(self): | ||||
|         '''This method is called by Zope/CMF every time an object is created, | ||||
|            be it temp or not. The objective here is to initialise workflow- | ||||
|            related data on the object.''' | ||||
|         '''This method is called every time an object is created, be it temp or | ||||
|            not. The objective here is to initialise workflow-related data on | ||||
|            the object.''' | ||||
|         wf = self.getWorkflow() | ||||
|         # Get the initial workflow state | ||||
|         initialState = self.State(name=False) | ||||
|  |  | |||
|  | @ -12,13 +12,14 @@ acronym {cursor: help;} | |||
| input[type=image] { border: 0; background: none; } | ||||
| input[type=checkbox] { border: 0; background: none; cursor: pointer;} | ||||
| input[type=radio] { border: 0; background: none; cursor: pointer;} | ||||
| input[type=file] { border: 0px solid #cccccc; background-color: #f8f8f8; | ||||
|                    cursor: pointer;} | ||||
| input[type=button] { border: 1px solid #cccccc; background-color: #f8f8f8; | ||||
|                      cursor: pointer;} | ||||
| input[type=file] { border: 0px solid #cccccc; | ||||
|                    background-color: #f8f8f8; cursor: pointer;} | ||||
| input[type=button] { border: 1px solid #cccccc; | ||||
|                      background-color: #f8f8f8; cursor: pointer;} | ||||
| input[type=submit] { border: 1px solid #cccccc; background-color: #f8f8f8; | ||||
|                      cursor: pointer; } | ||||
| input[type=password] { border: 1px solid #cccccc; background-color: #f8f8f8;} | ||||
| input[type=password] { border: 1px solid #cccccc; background-color: #f8f8f8; | ||||
|                        font-family: Lucida,Helvetica,Arial,sans-serif;} | ||||
| input[type=text] { border: 1px solid #cccccc; background-color: #f8f8f8; | ||||
|                    font-family: Lucida,Helvetica,Arial,sans-serif; | ||||
|                    margin-bottom: 1px} | ||||
|  |  | |||
|  | @ -99,9 +99,9 @@ | |||
|          <input type="hidden" name="pwd_empty" id="pwd_empty" value="0"/> | ||||
| 
 | ||||
|          <span>Login</span>  | ||||
|          <input type="text" size="15" name="__ac_name" id="__ac_name" value=""/>  | ||||
|          <input type="text" size="25" name="__ac_name" id="__ac_name" value=""/>  | ||||
|          <span>Password</span>  | ||||
|          <input type="password" size="15" name="__ac_password" id="__ac_password"/> | ||||
|          <input type="password" size="25" name="__ac_password" id="__ac_password"/> | ||||
|          <input type="submit" name="submit" onclick="setLoginVars()" | ||||
|                 tal:define="label python: _('Login');" tal:attributes="value label; alt label;"/> | ||||
|         </form> | ||||
|  |  | |||
|  | @ -244,6 +244,11 @@ class AbstractWrapper(object): | |||
|                                 maxResults=maxResults, noSecurity=noSecurity) | ||||
|         return [o.appy() for o in res['objects']] | ||||
| 
 | ||||
|     def search1(self, *args, **kwargs): | ||||
|         '''Identical to m_search above, but returns a single result (if any).''' | ||||
|         res = self.search(*args, **kwargs) | ||||
|         if res: return res[0] | ||||
| 
 | ||||
|     def count(self, klass, noSecurity=False, **fields): | ||||
|         '''Identical to m_search above, but returns the number of objects that | ||||
|            match the search instead of returning the objects themselves. Use | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 Gaetan Delannay
						Gaetan Delannay