def __call__(self): self.remove = set([ v.encode('utf8') for v in json_loads(self.request.form.get('remove')) ]) self.add = set([ v.encode('utf8') for v in json_loads(self.request.form.get('add')) ]) return super(TagsAction, self).__call__()
def __call__(self): self.effectiveDate = self.request.form.get('effectiveDate') effectiveTime = self.request.form.get('effectiveTime') if self.effectiveDate and effectiveTime: self.effectiveDate = self.effectiveDate + ' ' + effectiveTime self.expirationDate = self.request.form.get('expirationDate') expirationTime = self.request.form.get('expirationTime') if self.expirationDate and expirationTime: self.expirationDate = self.expirationDate + ' ' + expirationTime self.copyright = self.request.form.get('copyright', '') self.contributors = json_loads( self.request.form.get('contributors', '[]')) self.creators = json_loads(self.request.form.get('creators', '[]')) self.exclude = self.request.form.get('exclude_from_nav', None) return super(PropertiesAction, self).__call__()
def _parseJSON(s): if isinstance(s, basestring): s = s.strip() if (s.startswith('{') and s.endswith('}')) or \ (s.startswith('[') and s.endswith(']')): # detect if json return json_loads(s) return s
def __call__(self): self.errors = [] self.protect() context = aq_inner(self.context) torename = json_loads(self.request.form['torename']) catalog = getToolByName(context, 'portal_catalog') mtool = getToolByName(context, 'portal_membership') missing = [] for data in torename: uid = data['UID'] brains = catalog(UID=uid) if len(brains) == 0: missing.append(uid) continue obj = brains[0].getObject() title = self.objectTitle(obj) if not mtool.checkPermission('Copy or Move', obj): self.errors( _(u'Permission denied to rename ${title}.', mapping={u'title': title})) continue sp = transaction.savepoint(optimistic=True) newid = data['newid'].encode('utf8') newtitle = data['newtitle'] try: obid = obj.getId() title = obj.Title() change_title = newtitle and title != newtitle if change_title: getSecurityManager().validate(obj, obj, 'setTitle', obj.setTitle) obj.setTitle(newtitle) notify(ObjectModifiedEvent(obj)) if newid and obid != newid: parent = aq_parent(aq_inner(obj)) # Make sure newid is safe newid = INameChooser(parent).chooseName(newid, obj) # Update the default_page on the parent. context_state = getMultiAdapter((obj, self.request), name='plone_context_state') if context_state.is_default_page(): parent.setDefaultPage(newid) parent.manage_renameObjects((obid, ), (newid, )) elif change_title: # the rename will have already triggered a reindex obj.reindexObject() except ConflictError: raise except Exception: sp.rollback() self.errors.append( _('Error renaming ${title}', mapping={'title': title})) return self.message(missing)
def __call__(self): self.errors = [] self.protect() context = aq_inner(self.context) torename = json_loads(self.request.form['torename']) catalog = getToolByName(context, 'portal_catalog') mtool = getToolByName(context, 'portal_membership') missing = [] for data in torename: uid = data['UID'] brains = catalog(UID=uid) if len(brains) == 0: missing.append(uid) continue obj = brains[0].getObject() title = self.objectTitle(obj) if not mtool.checkPermission('Copy or Move', obj): self.errors(_(u'Permission denied to rename ${title}.', mapping={u'title': title})) continue sp = transaction.savepoint(optimistic=True) newid = data['newid'].encode('utf8') newtitle = data['newtitle'] try: obid = obj.getId() title = obj.Title() change_title = newtitle and title != newtitle if change_title: getSecurityManager().validate(obj, obj, 'setTitle', obj.setTitle) obj.setTitle(newtitle) notify(ObjectModifiedEvent(obj)) if newid and obid != newid: parent = aq_parent(aq_inner(obj)) # Make sure newid is safe newid = INameChooser(parent).chooseName(newid, obj) # Update the default_page on the parent. context_state = getMultiAdapter( (obj, self.request), name='plone_context_state') if context_state.is_default_page(): parent.setDefaultPage(newid) parent.manage_renameObjects((obid, ), (newid, )) elif change_title: # the rename will have already triggered a reindex obj.reindexObject() except ConflictError: raise except Exception: sp.rollback() self.errors.append(_('Error renaming ${title}', mapping={ 'title': title})) return self.message(missing)
def __call__(self): self.errors = [] self.protect() id = self.request.form.get('id') ordering = self.getOrdering() delta = self.request.form['delta'] subset_ids = json_loads(self.request.form.get('subset_ids', '[]')) if delta == 'top': ordering.moveObjectsToTop([id]) elif delta == 'bottom': ordering.moveObjectsToBottom([id]) else: delta = int(delta) if subset_ids: position_id = [(ordering.getObjectPosition(i), i) for i in subset_ids] position_id.sort() if subset_ids != [i for position, i in position_id]: self.errors.append(_('Client/server ordering mismatch')) return self.message() ordering.moveObjectsByDelta([id], delta) return self.message()
def get_selection(self): selection = self.request.form.get('selection', '[]') return json_loads(selection)
def __call__(self): self.remove = set([v.encode('utf8') for v in json_loads(self.request.form.get('remove'))]) self.add = set([v.encode('utf8') for v in json_loads(self.request.form.get('add'))]) return super(TagsAction, self).__call__()