def _edit(self, **kw): """ This is used to edit files """ if 'file' in kw: file_object = kw.pop('file') filename = getattr(file_object, 'filename', None) # if file field is empty(no file is uploaded), # filename is empty string. if not filename: # settings the filename before calling # _setFile is required to setup the content_type # property filename = kw.get('filename') if filename: self._setFilename(filename) if file_object is not None: # XXX: Rather than doing nothing if empty, consider changing: # - _update_image_info to clear metadata # - interactions to do nothing (or else?) file_object.seek(0, 2) if file_object.tell(): file_object.seek(0) self._setFile(file_object) Base._edit(self, **kw)
def _getCategoryMembershipList( self, category, spec=(), filter=None, # pylint:disable=redefined-builtin portal_type=(), base=0, keep_default=1, checked_permission=None, **kw): if category == 'specialise': open_order_line = self.getAggregateRelatedValue( portal_type='Open Sale Order Line') return open_order_line._getCategoryMembershipList( category, spec=spec, filter=filter, portal_type=portal_type, base=base, keep_default=keep_default, checked_permission=checked_permission, **kw) return Base._getCategoryMembershipList( self, category, spec=spec, filter=filter, portal_type=portal_type, base=base, keep_default=keep_default, checked_permission=checked_permission, **kw)
def _experimental_aq_dynamic(self, name): result = Base._aq_dynamic(self, name) if result is not None: return result # Do some optimisation here for names which can not be names of documents if name.startswith('_') or name.startswith('portal_')\ or name.startswith('aq_') or name.startswith('selection_') \ or name.startswith('sort-') or name == 'getLayout' \ or name == 'getListItemUrl' or name.startswith('WebSite_'): return None # Use a non recursion variable cache_key = 'web_site_aq_cache' request = self.REQUEST # Prevent infinite recursion if not request.has_key(cache_key): request[cache_key] = {} elif request[cache_key].has_key(name): return request[cache_key][name] try: result_list = self.portal_catalog(portal_type="Person", id=name) if len(result_list): return result_list[0].getObject() except: # Cleanup non recursion dict in case of exception if request[cache_key].has_key(name): del request[cache_key][name] raise return None
def _experimental_aq_dynamic(self, name): result = Base._aq_dynamic(self, name) if result is not None: return result # Do some optimisation here for names which can not be names of documents if name.startswith('_') or name.startswith('portal_')\ or name.startswith('aq_') or name.startswith('selection_') \ or name.startswith('sort-') or name == 'getLayout' \ or name == 'getListItemUrl' or name.startswith('WebSite_'): return None # Use a non recursion variable cache_key = 'web_site_aq_cache' request = self.REQUEST # Prevent infinite recursion if not request.has_key(cache_key): request[cache_key] = {} elif request[cache_key].has_key(name): return request[cache_key][name] try: result_list = self.portal_catalog(portal_type="Person", id = name) if len(result_list): return result_list[0].getObject() except: # Cleanup non recursion dict in case of exception if request[cache_key].has_key(name): del request[cache_key][name] raise return None
def _edit(self, edit_order=(), **kw): # XXX FIXME For now, special cases are handled in _edit methods in many # documents : DeliveryLine, DeliveryCell ... Ideally, to prevent code # duplication, it should be handled in a _edit method present only in # Amount.py # If variations and resources are set at the same time, resource must be # set before any variation. before_order = ('resource', 'resource_value', 'variation_base_category_list', 'variation_category_list') before_kw = {k: kw.pop(k) for k in before_order if k in kw} if before_kw: before_kw.update((k, kw[k]) for k in edit_args_list if k in kw) Base._edit(self, edit_order=before_order, **before_kw) if kw: Movement._edit(self, edit_order=edit_order, **kw)
def _getCategoryMembershipList(self, category, spec=(), filter=None, portal_type=(), base=0, keep_default=1, checked_permission=None, **kw): if category == 'specialise': open_order_line = self.getAggregateRelatedValue(portal_type='Open Sale Order Line') return open_order_line._getCategoryMembershipList(category, spec=spec, filter=filter, portal_type=portal_type, base=base, keep_default=keep_default, checked_permission=checked_permission, **kw) return Base._getCategoryMembershipList(self, category, spec=spec, filter=filter, portal_type=portal_type, base=base, keep_default=keep_default, checked_permission=checked_permission, **kw)
def _edit(self, **kw): """ This is used to edit files """ if 'file' in kw: file_object = kw.pop('file') precondition = kw.get('precondition') filename = getattr(file_object, 'filename', None) # if file field is empty(no file is uploaded), # filename is empty string. if not filename: # settings the filename before calling # _setFile is required to setup the content_type # property filename = kw.get('filename') if filename: self._setFilename(filename) if self._isNotEmpty(file_object): self._setFile(file_object, precondition=precondition) Base._edit(self, **kw)
def __init__(self, *args, **kw): Base.__init__(self, *args, **kw) self.result_list = ConflictFreeLog()