def set_value(self, resource, context, name, form): if name == 'tags': proxy = TagsAware_Edit return proxy.set_value(self, resource, context, name, form) elif name in ('attachment', 'alert_time'): return False if name == 'alert_date': alert_date = form[name] if alert_date: alert_time = form['alert_time'] or time(9, 0) value = datetime.combine(alert_date, alert_time) else: status = form['crm_m_status'] if status not in ('finished', 'nogo'): context.message = ERR_ALERT_MANDATORY return True value = None resource.set_property('crm_m_alert', value) return False elif name == 'crm_m_nextaction': value = form[name] if not value: status = form['crm_m_status'] if status not in ('finished', 'nogo'): context.message = ERR_NEXTACTION_MANDATORY return True resource.set_property('crm_m_nextaction', value) return False elif name == 'comment': value = form[name] # Attachment attachment = form['attachment'] if attachment is None: if not value: return False else: filename, mimetype, body = attachment # Find a non used name attachment = checkid(filename) attachment, extension, language = FileName.decode(attachment) attachment = generate_name(attachment, resource.get_names()) # Add attachment cls = get_resource_class(mimetype) resource.make_resource(attachment, cls, body=body, filename=filename, extension=extension, format=mimetype) if not value: value = DUMMY_COMMENT user = context.user author = user.name if user else None value = Property(value, date=context.timestamp, author=author, attachment=attachment) resource.metadata.set_property(name, value) context.database.change_resource(resource) return False proxy = DBResource_Edit return proxy.set_value(self, resource, context, name, form)
def save_file(self, filename, mimetype, body): name, extension, language = FileName.decode(filename) parent = self.parent used = parent.get_names() #name = checkid(name) or 'invalid' name = generate_name(name, used) context = get_context() cls = context.database.get_resource_class(mimetype) metadata = { 'format': mimetype, 'filename': filename, 'extension': extension} parent.make_resource(name, cls, body=body, **metadata) return name
def _save_template(context, a_file, target_path): """Save the imported template. """ filename, mimetype, body = a_file name, type, language = FileName.decode(filename) # Check the filename is good name = checkid(name) if name is None: context.message = MSG_BAD_NAME return # Get the container container = context.root.get_resource(target_path) # Search for a free name names = container.get_names() name = generate_name(name, names) # Add the image to the resource cls = context.database.get_resource_class(mimetype) container.make_resource(name, cls, body=body, format=mimetype, filename=filename, extension=type) return name