예제 #1
0
파일: mission_views.py 프로젝트: hforge/crm
 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)
예제 #2
0
파일: form.py 프로젝트: leenaars/goodforms
 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
예제 #3
0
파일: folder_views.py 프로젝트: hforge/wiki
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