def save_form(values, table_name, record_id=None): """ Save data to a record. Args: values: (dict) values to save. table_name: (string) data table's name. record_id: (string, optional) record's id. If it is empty, add a new record. """ form_class = FORM_SET.get(table_name) if not form_class: raise MudderyError(ERR.no_table, "Can not find table: %s" % table_name) form = None if record_id: try: # Query record's data. record = general_query_mapper.get_record_by_id( table_name, record_id) form = form_class(values, instance=record) except Exception as e: form = None if not form: # Get empty data. form = form_class(values) # Save data if form.is_valid(): instance = form.save() return instance.pk else: raise MudderyError(ERR.invalid_form, "Invalid form.", data=form.errors)
def query_form(table_name, **kwargs): """ Query table's data. Args: table_name: (string) data table's name. kwargs: (dict) conditions. """ form_class = FORM_SET.get(table_name) if not form_class: raise MudderyError(ERR.no_table, "Can not find table: %s" % table_name) form = None record = None if kwargs: try: # Query record's data. record = general_query_mapper.get_record(table_name, **kwargs) form = form_class(instance=record) except Exception as e: form = None if not form: # Get empty data. form = form_class() fields = [] fields.append({ "name": "id", "label": "", "disabled": True, "help_text": "", "type": "Hidden", "value": record.id if record else "", }) for key, field in form.fields.items(): info = { "name": key, "label": field.label, "disabled": field.disabled, "help_text": field.help_text, "type": field.widget.__class__.__name__, } if record: info["value"] = str(record.serializable_value(key)) if info["type"] == "Select": info["choices"] = field.choices if isinstance(field, LocationField): info["type"] = "Location" elif isinstance(field, ImageField): info["type"] = "Image" info["image_type"] = field.get_type() fields.append(info) return fields
def save_form(values, table_name, record_id=None): """ Save data to a record. Args: values: (dict) values to save. table_name: (string) data table's name. record_id: (string, optional) record's id. If it is empty, add a new record. """ form_class = FORM_SET.get(table_name) if not form_class: raise MudderyError(ERR.no_table, "Can not find table: %s" % table_name) form = None if record_id: try: # Query record's data. record = general_query_mapper.get_record_by_id(table_name, record_id) form = form_class(values, instance=record) except Exception, e: form = None
def query_form(table_name, **kwargs): """ Query table's data. Args: table_name: (string) data table's name. kwargs: (dict) conditions. """ form_class = FORM_SET.get(table_name) if not form_class: raise MudderyError(ERR.no_table, "Can not find table: %s" % table_name) form = None record = None if kwargs: try: # Query record's data. record = general_query_mapper.get_record(table_name, **kwargs) form = form_class(instance=record) except Exception, e: form = None
def query_form(table_name, record_id=None): """ Query table's data. Args: table_name: (string) data table's name. record_id: (string, optional) record's id. If it is empty, query an empty form. """ form_class = FORM_SET.get(table_name) if not form_class: raise MudderyError(ERR.no_table, "Can not find table: %s" % table_name) form = None record = None if record_id: try: # Query record's data. record = general_query_mapper.get_record_by_id(table_name, record_id) form = form_class(instance=record) except Exception, e: form = None
def save_object_form(tables, obj_typeclass, obj_key): """ Save all data of an object. Args: tables: (list) a list of table data. [{ "table": (string) table's name. "record": (string, optional) record's id. If it is empty, add a new record. }] obj_typeclass: (string) object's typeclass. obj_key: (string) current object's key. If it is empty or changed, query an empty form. """ if not tables: raise MudderyError(ERR.invalid_form, "Invalid form.", data="Empty form.") # Get object's new key from the first form. try: new_key = tables[0]["values"]["key"] except KeyError: new_key = obj_key if not new_key: # Does not has a new key, generate a new key. index = SYSTEM_DATA.get_object_index() new_key = "%s_auto_%s" % (obj_typeclass, index) for table in tables: table["values"]["key"] = new_key forms = [] for table in tables: table_name = table["table"] form_values = table["values"] form_class = FORM_SET.get(table_name) form = None if obj_key: try: # Query the current object's data. record = general_query_mapper.get_record_by_key(table_name, obj_key) form = form_class(form_values, instance=record) except ObjectDoesNotExist: form = None if not form: # Get empty data. form = form_class(form_values) forms.append(form) # check data for form in forms: if not form.is_valid(): raise MudderyError(ERR.invalid_form, "Invalid form.", data=form.errors) # Save data with transaction.atomic(): for form in forms: form.save() return new_key
raise MudderyError(ERR.invalid_form, "Invalid form.", data="No typeclass model: %s" % obj_typeclass) obj_key = obj_typeclass + "_" + str(index) for table in tables: table["values"]["key"] = obj_key forms = [] for table in tables: table_name = table["table"] form_values = table["values"] form_class = FORM_SET.get(table_name) form = None if not new_obj: try: # Query record's data. record = general_query_mapper.get_record_by_key( table_name, obj_key) form = form_class(form_values, instance=record) except ObjectDoesNotExist: form = None if not form: # Get empty data. form = form_class(form_values) forms.append(form)