예제 #1
0
    def getPhoto(self, campo, request, data):
        if campo in request.keys():
            if request.get(campo, None):
                return ''
            else:
                id_form = int(request.get('forms_id', '0'))
                id_instance = int(request.get('id_instance', '0'))
                field = campo
                result = ModelsFormValues(
                ).get_FormValues_byForm_and_Instance_and_Field(
                    id_form, id_instance, field)
                if result:
                    return '../form-image?id=%s' % result.id

        elif campo in data.keys():
            id_form = int(request.get('forms_id', '0'))
            id_instance = int(request.get('id_instance', '0'))
            field = campo
            result = ModelsFormValues(
            ).get_FormValues_byForm_and_Instance_and_Field(
                id_form, id_instance, field)
            if result:
                return '../form-image?id=%s' % result.id

            else:
                return ''
        else:
            return ''
예제 #2
0
    def convertSelect(self, valor, tipo, id):
        if tipo == 'list':
            txt = ''
            for i in self.decodePickle(valor):
                if txt:
                    txt += ', ' + i
                else:
                    txt += i

            return txt
        elif tipo == 'choice':
            campo = ModelsFormFields().get_Fields_byIdField(id)
            if campo:
                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 == 'date':
            data = self.decodePickle(valor)
            try:
                return data.strftime('%d/%m/%Y')
            except:
                return ''

        elif tipo == 'foreign_key':
            campo = ModelsFormFields().get_Fields_byIdField(id)

            if campo:
                form_ref = campo.ref_form

                form_ref_id = form_ref.id
                label = form_ref.campo_label
                key = form_ref.campo_chave

                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
예제 #3
0
def ExcludFormDataBase(context, event):
    basestore = BaseStore()
    id_form = int(context.forms_id)

    record_values = ModelsFormValues().get_FormValues_byForm(id_form)
    if record_values:
        for record in record_values:
            basestore.store.remove(record)
            basestore.store.flush()

    record_instances = ModelsFormInstance().get_Instance(id_form)
    if record_instances:
        for record in record_instances:
            basestore.store.remove(record)
            basestore.store.flush()

    record_parameters = ModelsParametersForm().get_ParametersForm_byFormId(
        id_form)
    if record_parameters:
        for record in record_parameters:
            basestore.store.remove(record)
            basestore.store.flush()

    record_fields = ModelsFormFields().get_Fields_ByIdForm(id_form)
    if record_fields:
        for record in record_fields:
            basestore.store.remove(record)
            basestore.store.flush()

    record_form = ModelsForm().get_Forns_byId(id_form)
    if record_form:
        basestore.store.remove(record_form)
        basestore.store.flush()
예제 #4
0
    def get_value_field(self, instance_id, name_field):
        if not isinstance(instance_id, int):
            instance_id = int(instance_id)

        if not isinstance(name_field, unicode):
            name_field = unicode(name_field)            

        return ModelsFormValues().get_FormValues_byForm_and_Instance_and_Field(self.form_id,instance_id,name_field)
예제 #5
0
 def list_registro(self):
     form = self.request.form
     if 'id_instance' in form.keys():  #'forms_id' in form.keys() and
         #forms_id = int(form.get('forms_id',''))
         id_form = int(self.context.forms_id)
         id_instance = int(form.get('id_instance', ''))
         return ModelsFormValues().get_FormValues_byForm_and_Instance(
             id_form, id_instance)
     else:
         return None
예제 #6
0
    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)
예제 #7
0
    def update(self):
        #Checagem de permição na view
        if not self.context.is_active_workflow:
            self.request.response.redirect('%s/' % self.context.absolute_url())


        pedidos_nivel2 = []
        self.pedidos = self.rs_to_list(ModelsFormValues().get_FormValues_byForm_and_Field_and_Value(self.form_id,u'status',[u'open', u'em_andamento',u'cliente']))
         
        member =  self.context.restrictedTraverse('@@plone_portal_state').member()
        if member:
            username = member.getUserName()
            if not isinstance(username, unicode):
                username = unicode(username)  
            
            pedidos_nivel2 = ModelsFormValues().get_FormValues_byForm_and_Field_and_Value(self.form_id, u'nivel',username) 

        self.pedidos_nivel2 = self.rs_to_list(pedidos_nivel2)

        self.pedidos_aprovado = self.rs_to_list(ModelsFormValues().get_FormValues_byForm_and_Field_and_Value(self.form_id,u'status',u'aprovado'))
        self.pedidos_reprovado = self.rs_to_list(ModelsFormValues().get_FormValues_byForm_and_Field_and_Value(self.form_id,u'status',u'reprovado'))
예제 #8
0
 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
예제 #9
0
def ExcludConteudoDataBase(context, event):
    basestore = BaseStore()
    id_form = int(context.forms_id)
    id_instance = int(context.instance_id)

    record_values = ModelsFormValues().get_FormValues_byForm_and_Instance(
        id_form, id_instance)
    if record_values:
        for record in record_values:
            basestore.store.remove(record)
            basestore.store.flush()

    ModelsFormInstance().del_Instance(id_form, id_instance)
예제 #10
0
    def getFile(self, campo, request, data):
        if campo in request.keys():
            if request.get(campo, None):
                return ''
            else:
                if hasattr(self, 'context'):
                    default_form_id = self.context.forms_id
                else:
                    default_form_id = 0
                id_form = int(request.get('forms_id', default_form_id))
                id_instance = int(request.get('id_instance', '0'))
                field = campo
                result = ModelsFormValues(
                ).get_FormValues_byForm_and_Instance_and_Field(
                    id_form, id_instance, field)
                if result:
                    return '../form-file?id=%s' % result.id

        elif campo in data.keys():
            if hasattr(self, 'context'):
                default_form_id = self.context.forms_id
            else:
                default_form_id = 0
            id_form = int(request.get('forms_id', default_form_id))
            id_instance = int(request.get('id_instance', '0'))
            field = campo
            result = ModelsFormValues(
            ).get_FormValues_byForm_and_Instance_and_Field(
                id_form, id_instance, field)
            if result:
                return '../form-file?id=%s' % result.id

            else:
                return ''
        else:
            return ''
예제 #11
0
    def check_exclud_fields(self):
        id_form = int(self.context.forms_id)
        id_fields = int(self.request.form.get('id_fields', '0'))

        field = ModelsFormFields().get_Fields_byIdField(id_fields)
        if field:
            check = ModelsFormValues().get_FormValues_byForm_and_Field(
                id_form, field.name_field)

            if check:
                return False
            else:
                if field.ref_mult.count():
                    return False
                else:
                    return True
        return True
예제 #12
0
    def update(self,form_id=None):
        pedidos = []

        if not form_id:
            form_id = self.form_id
        else:
            setattr(self, 'form_id', form_id)

        member =  self.context.restrictedTraverse('@@plone_portal_state').member()
        if member:
            username = member.getUserName()
            if not isinstance(username, unicode):
                username = unicode(username)  

            pedidos = self.rs_to_list(ModelsFormValues().get_FormValues_byForm_and_Field_and_Value(form_id,u'username',username))


        self.meus_pedidos = pedidos
예제 #13
0
    def update(self):
        form = self.request.form
        if 'id' in form.keys():
            id = form.get('id', '0')
            if id != 'None':
                campo_image = ModelsFormValues().get_Values_byID(int(id))
                valor = campo_image.value
                valor_blob = campo_image.value_blob
                if valor:
                    x = self.decodePickle(valor)
                else:
                    x = self.decodePickle(valor_blob)

                filename = x['filename']
                self.request.response.setHeader("Content-Type", "type/file", 0)
                self.request.response.setHeader(
                    'Content-Disposition',
                    'attachment; filename=%s' % (filename))
                self.request.response.write(x['data'])
예제 #14
0
    def get_FormValues(self, getall=True):
        id_form = int(self.context.forms_id)
        form = self.request.form

        if 'data_inicial' in form.keys():
            data_inicial = self.str2datetime(
                form.get('data_inicial')) + timedelta(days=0)
        else:
            data_inicial = self.str2datetime(self.get_data_inicial())

        if 'data_final' in form.keys():
            data_final = self.str2datetime(
                form.get('data_final')) - timedelta(days=-1)
        else:
            data_final = self.str2datetime(self.get_data_final())

        self.data_instance = ModelsFormInstance().store.find(
            ModelsFormInstance,
            ModelsFormInstance.forms_id == id_form,
            ModelsFormInstance.date_creation >= data_inicial,
            ModelsFormInstance.date_creation <= data_final,
        ).order_by(Desc(ModelsFormInstance.date_creation))

        self.ids_instances = [int(i.instance_id) for i in self.data_instance]

        L_value = []
        self.data_values = ModelsFormValues().store.find(
            ModelsFormValues, ModelsFormValues.forms_id == id_form,
            ModelsFormValues.date_creation >= data_inicial,
            ModelsFormValues.date_creation <= data_final,
            ModelsFormValues.instance_id.is_in(self.ids_instances))

        for item in self.data_instance:
            data = self.data_values.find(
                ModelsFormValues.instance_id == int(item.instance_id))
            if data.count() > 0:
                L_value.append(data)

        L = []
        for item in L_value:
            if self.checkItem(item, form):
                L.append(item)
        return L
예제 #15
0
    def update(self):
        form = self.request.form
        if 'id' in form.keys():
            id = form.get('id', '0')
            if id != 'None':
                campo_image = ModelsFormValues().get_Values_byID(int(id))
                valor = campo_image.value
                valor_blob = campo_image.value_blob

                if valor:
                    x = self.decodePickle(valor)
                else:
                    x = self.decodePickle(valor_blob)

                self.request.response.setHeader("Content-Type", "image/jpeg",
                                                0)

                try:
                    #medoto adicionado na versão 1.1 do vindula
                    self.request.response.write(x['data'])
                except:
                    # medo usutilizado ate a versão antiga do content core
                    self.request.response.write(x)
예제 #16
0
def CreatFormDataBase(context, event):
    title = context.Title()
    description = context.Description()
    uid_form = IUUID(context)

    forms_id = context.forms_id

    D = {}
    try:
        D['name_form'] = to_utf8(title)
    except:
        D['name_form'] = title

    try:
        D['description_form'] = to_utf8(description)
    except:
        D['description_form'] = description

    try:
        D['uid_form'] = to_utf8(uid_form)
    except:
        D['uid_form'] = uid_form

    id_form = ModelsForm().set_Form(**D)
    if forms_id != id_form:
        context.forms_id = id_form

    if context.active_workflow:

        for campo in campos_controle:
            campo['forms_id'] = int(id_form)

            ModelsFormFields().set_FormFields(**campo)

    if 'original' in event.__dict__.keys():
        org = event.original
        new = event.object

        fields_org = ModelsFormFields().get_Fields_ByIdForm(int(org.forms_id))

        campos = ['name_field','type_fields', 'list_values','title','value_default',\
                  'description_fields','ordenacao','required','flag_ativo', 'flag_float_left']

        for item in fields_org:
            D = {}
            for i in campos:
                D[i] = item.__getattribute__(i)

            D['forms_id'] = int(new.forms_id)

            ModelsFormFields().set_FormFields(**D)

        instances_org = ModelsFormInstance().get_Instance(int(org.forms_id))

        for instance in instances_org:
            values_instance = ModelsFormValues(
            ).get_FormValues_byForm_and_Instance(int(org.forms_id),
                                                 instance.instance_id)

            id_inst = ModelsFormInstance().set_FormInstance(int(new.forms_id))

            campos_value = ['value', 'value_blob', 'fields']

            for value in values_instance:
                D = {}
                for i in campos_value:
                    D[i] = value.__getattribute__(i)

                D['forms_id'] = int(new.forms_id)
                D['instance_id'] = id_inst

                ModelsFormValues().set_FormValues(**D)
예제 #17
0
 def get_FormValues(self, id_form, id_instance):
     return ModelsFormValues().get_FormValues_byForm_and_Instance(
         int(id_form), int(id_instance))
예제 #18
0
    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
예제 #19
0
    def itens(self,instance_id):
        if not isinstance(instance_id, int):
            instance_id = int(instance_id)

        return ModelsFormValues().get_FormValues_byForm_and_Instance(self.form_id,instance_id)
예제 #20
0
    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)