def update(self): id_form = int(self.context.forms_id) form = self.request.form self.errors = {} self.dados = [] self.configuracao = ModelsConfigImport().get_Config_byIdForm(int(id_form)) FIELD_BLACKLIST = ['form.config.save','form.importar',] configura = form.get('form.config.save',False) importacao = form.get('form.importar',False) if configura: for field in form.keys(): if not field in FIELD_BLACKLIST: D = {} D['forms_id'] = id_form D['fields'] = self.Convert_utf8(field) D['campo_csv'] = self.Convert_utf8(form.get(field,0)) if self.configuracao: ModelsConfigImport().update_ConfigImport(D['forms_id'],D['fields'],D['campo_csv']) else: ModelsConfigImport().set_ConfigImport(**D) if 'form.config.save' in form.keys(): form.pop('form.config.save') elif importacao: if 'arquivo' in form.keys(): file = form.get('arquivo').read().splitlines() for linha in file[1:]: colunas = linha.split(';') dados = {} for campo in self.configuracao: dados[self.Convert_utf8(campo.fields)] = self.Convert_utf8(colunas[int(campo.campo_csv)-1]) chave_form = self.context.campo_chave result = ModelsFormValues().get_FormValues_byForm_and_Field_and_Value(id_form,chave_form,dados[chave_form]) if result.count(): result = result[0] id_instance = result.instance_id for i in dados: ModelsFormValues().update_form_value(id_form,id_instance,dados[i],i) else: id_instance = ModelsFormInstance().set_FormInstance(id_form) for i in dados: valor = dados[i] if valor: ModelsFormValues().set_form_value(id_form,id_instance,valor,i) self.dados.append(dados)
def get_values_filter(self): filter = ModelsFormFields().get_Fields_ByField(self.context.campo_filtro, int(self.context.forms_id)) if filter: self.filter = [filter.title, filter.name_field] if self.filter: result = ModelsFormValues().get_FormValues_byForm_and_Field(int(self.context.forms_id),self.filter[1]) if result.count() > 0: L = [] for i in result: if i.value not in L: L.append(i.value) return L
def update(self): form = self.request.form instance = 0 formulario = form.get('form','0') field = form.get('field','') self.name_field = field value = form.get('value','') self.formulario = formulario self.campos = ModelsFormFields().get_Fields_ByIdForm(int(formulario)) campo_busca = ModelsFormValues().store.find(ModelsFormValues, ModelsFormValues.fields==unicode(field), ModelsFormValues.forms_id==int(formulario), ModelsFormValues.value==unicode(value) ) if campo_busca.count(): instance = campo_busca[0].instance_id self.valores = ModelsFormValues().get_FormValues_byForm_and_Instance(int(formulario),instance)
def update(self): form = self.request.form instance = 0 formulario = form.get('form', '0') field = form.get('field', '') self.name_field = field value = form.get('value', '') self.formulario = formulario self.campos = ModelsFormFields().get_Fields_ByIdForm(int(formulario)) campo_busca = ModelsFormValues().store.find( ModelsFormValues, ModelsFormValues.fields == unicode(field), ModelsFormValues.forms_id == int(formulario), ModelsFormValues.value == unicode(value)) if campo_busca.count(): instance = campo_busca[0].instance_id self.valores = ModelsFormValues().get_FormValues_byForm_and_Instance( int(formulario), instance)
def geraHTMLContent(self, id, tipo, valor, full_text=False): if tipo == 'list': txt = '' for i in self.decodePickle(valor): txt += i + ', ' return txt elif tipo == 'img': if id: return '<img width="100px" src="../form-image?id=%s">' % id else: return '' elif tipo == 'file': if id: arquivo = self.decodePickle(valor) if arquivo != '': name = arquivo.get('filename', '') return '<a href="../form-file?id=%s" target="_blank">%s</a><br />' % ( id, name) else: return '' else: return '' elif tipo == 'date': data = self.decodePickle(valor) try: return data.strftime('%d/%m/%Y') except: return '' elif tipo == 'choice': if id: valor_campo = ModelsFormValues().get_Values_byID(id) id_form = int(self.context.forms_id) if valor_campo: campo = ModelsFormFields().get_Fields_ByField( valor_campo.fields, id_form) items = campo.list_values.splitlines() D = [] for i in items: L = i.split(' | ') if len(L) >= 2: if L[0] == valor: return L[1] return valor elif tipo == 'foreign_key': if id: valor_campo = ModelsFormValues().get_Values_byID(id) id_form = int(self.context.forms_id) if valor_campo: campo = ModelsFormFields().get_Fields_ByField( valor_campo.fields, id_form) if campo: form_ref = campo.ref_form form_ref_id = form_ref.id label = form_ref.campo_label key = form_ref.campo_chave if full_text: instance = 0 txt = '' v_campos = form_ref.fields campo_busca = ModelsFormValues().store.find( ModelsFormValues, ModelsFormValues.fields == key, ModelsFormValues.forms_id == form_ref_id, ModelsFormValues.value == valor) if campo_busca.count(): instance = campo_busca[0].instance_id valores = ModelsFormValues( ).get_FormValues_byForm_and_Instance( form_ref_id, instance) txt = '<br/>' for v_campo in v_campos: v_valor = valores.find( fields=v_campo.name_field).one() txt += '<b> %s : </b><span> %s </span><br/>' % ( v_campo.title, v_valor.value) return txt else: dados = ModelsFormValues( ).get_FormValues_byForm_and_Field( form_ref_id, key) for item in dados: if item.value == valor: dados_label = ModelsFormValues( ).get_FormValues_byForm_and_Instance_and_Field( form_ref_id, item.instance_id, label) return dados_label.value return valor
def update(self): id_form = int(self.context.forms_id) form = self.request.form self.errors = {} self.dados = [] self.configuracao = ModelsConfigImport().get_Config_byIdForm( int(id_form)) FIELD_BLACKLIST = [ 'form.config.save', 'form.importar', ] configura = form.get('form.config.save', False) importacao = form.get('form.importar', False) if configura: for field in form.keys(): if not field in FIELD_BLACKLIST: D = {} D['forms_id'] = id_form D['fields'] = self.Convert_utf8(field) D['campo_csv'] = self.Convert_utf8(form.get(field, 0)) if self.configuracao: ModelsConfigImport().update_ConfigImport( D['forms_id'], D['fields'], D['campo_csv']) else: ModelsConfigImport().set_ConfigImport(**D) if 'form.config.save' in form.keys(): form.pop('form.config.save') elif importacao: if 'arquivo' in form.keys(): file = form.get('arquivo').read().splitlines() for linha in file[1:]: colunas = linha.split(';') dados = {} for campo in self.configuracao: dados[self.Convert_utf8( campo.fields)] = self.Convert_utf8( colunas[int(campo.campo_csv) - 1]) chave_form = self.context.campo_chave result = ModelsFormValues( ).get_FormValues_byForm_and_Field_and_Value( id_form, chave_form, dados[chave_form]) if result.count(): result = result[0] id_instance = result.instance_id for i in dados: ModelsFormValues().update_form_value( id_form, id_instance, dados[i], i) else: id_instance = ModelsFormInstance().set_FormInstance( id_form) for i in dados: valor = dados[i] if valor: ModelsFormValues().set_form_value( id_form, id_instance, valor, i) self.dados.append(dados)
def geraHTMLContent(self,id,tipo,valor,full_text=False): if tipo == 'list': txt = '' for i in self.decodePickle(valor): txt += i +', ' return txt elif tipo == 'img': if id: return '<img width="100px" src="../form-image?id=%s">' % id else: return '' elif tipo == 'file': if id: arquivo = self.decodePickle(valor) if arquivo != '': name = arquivo.get('filename','') return '<a href="../form-file?id=%s" target="_blank">%s</a><br />'%(id,name) else: return '' else: return '' elif tipo == 'date': data = self.decodePickle(valor) try: return data.strftime('%d/%m/%Y') except: return '' elif tipo == 'choice': if id: valor_campo = ModelsFormValues().get_Values_byID(id) id_form = int(self.context.forms_id) if valor_campo: campo = ModelsFormFields().get_Fields_ByField(valor_campo.fields,id_form) items = campo.list_values.splitlines() D=[] for i in items: L = i.split(' | ') if len(L) >= 2: if L[0] == valor: return L[1] return valor elif tipo == 'foreign_key': if id: valor_campo = ModelsFormValues().get_Values_byID(id) id_form = int(self.context.forms_id) if valor_campo: campo = ModelsFormFields().get_Fields_ByField(valor_campo.fields,id_form) if campo: form_ref = campo.ref_form form_ref_id = form_ref.id label = form_ref.campo_label key = form_ref.campo_chave if full_text: instance = 0 txt = '' v_campos = form_ref.fields campo_busca = ModelsFormValues().store.find(ModelsFormValues, ModelsFormValues.fields==key, ModelsFormValues.forms_id==form_ref_id, ModelsFormValues.value==valor ) if campo_busca.count(): instance = campo_busca[0].instance_id valores = ModelsFormValues().get_FormValues_byForm_and_Instance(form_ref_id,instance) txt = '<br/>' for v_campo in v_campos: v_valor = valores.find(fields=v_campo.name_field).one() txt += '<b> %s : </b><span> %s </span><br/>' %(v_campo.title,v_valor.value) return txt else: dados = ModelsFormValues().get_FormValues_byForm_and_Field(form_ref_id,key) for item in dados: if item.value == valor: dados_label = ModelsFormValues().get_FormValues_byForm_and_Instance_and_Field(form_ref_id, item.instance_id, label) return dados_label.value return valor