예제 #1
0
    def registration_processes(self, ctx):
        success_url = ctx.context.absolute_url() + '/edit-restaurant'
        access_denied = ctx.context.absolute_url() + '/login'
        form = ctx.request # var tipo 'dict' que guarda todas as informacoes do formulario (keys,items,values)
        form_keys = form.keys() # var tipo 'list' que guarda todas as chaves do formulario (keys)
        campos = {
                  'name'                 : {'required': True , 'type': to_utf8}, #campo obrigatorio
                  'vin_food_specialty_id': {'required': True , 'type': int    }, #campo obrigatorio
                  'address'              : {'required': True , 'type': to_utf8}, #campo obrigatorio
                  'phone_number'         : {'required': False, 'type': to_utf8},
                  'delivery'             : {'required': False, 'type': bool   },
                  'opening_hours'        : {'required': False, 'type': to_utf8},
                  'has_agreement'        : {'required': False, 'type': bool   }, 
                  'agreement'            : {'required': False, 'type': to_utf8}
                 } 
        
        # divisao dos dicionarios "errors" e "convertidos"
        form_data = {
            'errors': {},
            'data': {},
            'campos':campos,}
        # se clicou no botao "Voltar"
        if 'form.voltar' in form_keys:
            ctx.request.response.redirect(success_url)
          
        # se clicou no botao "Salvar"
        elif 'form.submited' in form_keys:
            # Inicia o processamento do formulario
            # chama a funcao que valida os dados extraidos do formulario (valida_form) 
            
            errors, data = valida_form(campos, form)  
            if not errors:
                
                if 'id' in form_keys:
                    # editando...
                    id = int(form.get('id'))
                    result = self.get_food_restaurant().find(id = id).one()
                    success_url = ctx.context.absolute_url() + '/restaurant?id='+str(id)
                    if result:
                        for campo in campos.keys():
                            value = data.get(campo, None)
                            setattr(result, campo, value)

                else:
                    #adicionando...
                    self.set_food_restaurant(**data)
                        
                #Redirect back to the front page with a status message
                #IStatusMessage(ctx.request).addStatusMessage(_(u"Thank you for your order. We will contact you shortly"), "info")
                ctx.request.response.redirect(success_url)
                                   
            else:
                form_data['errors'] = errors
                form_data['data'] = data
                return form_data
        
        # se clicou em excluir
        elif 'form.delete' in form_keys:
            p_utils = getToolByName(ctx.context, 'plone_utils')
            if 'id' in form_keys:
                record = self.get_food_restaurant().find(id = int(form.get('id'))).one()
                self.store.remove(record)
                self.store.flush()
                p_utils.addPortalMessage('Removido com sucesso.', 'info')
                ctx.request.response.redirect(ctx.context.absolute_url())
        
        # se for um formulario de edicao 
        elif 'id' in form_keys:
            id = int(form.get('id'))
            data = self.get_food_restaurant().find(id = id).one()
            
            D = {}
            for campo in campos.keys():
                D[campo] = getattr(data, campo, '')
              
            if data:
               form_data['data'] = D
               return form_data
            else:
               return form_data
              
        # se o usuario não estiver logado
        else:
            return form_data
예제 #2
0
    def registration_processes(self,ctx):
        success_url = ctx.context.absolute_url() + '/myvindula-manage-documents'
        access_denied = ctx.context.absolute_url() + '/@@vindula-control-panel'
        form = ctx.request.form # var tipo 'dict' que guarda todas as informacoes do formulario (keys,items,values)
        form_keys = form.keys() # var tipo 'list' que guarda todas as chaves do formulario (keys)
        campos = self.campos
        
        # divisao dos dicionarios "errors" e "convertidos"
        form_data = {
            'errors': {},
            'data': {},
            'campos':campos,}
        
        # se clicou no botao "Voltar"
        if 'form.voltar' in form_keys:
            ctx.request.response.redirect(success_url)
          
        # se clicou no botao "Salvar"
        elif 'form.submited' in form_keys:
            # Inicia o processamento do formulario
            # chama a funcao que valida os dados extraidos do formulario (valida_form) 
            errors, data = valida_form(campos, form)  

            if not errors:
                
                if 'id' in form_keys:
                    # editando...
                    id = int(form.get('id'))
                    result = ModelsConfigDocuments().get_ConfigDocuments_byID(id)
                    if result:
                        for campo in campos.keys():
                            value = data.get(campo, None)
                            setattr(result, campo, value)

                else:
                    ModelsConfigDocuments().set_ConfigDocuments(**data)
                    #adicionando...
                        
                #Redirect back to the front page with a status message
                IStatusMessage(ctx.request).addStatusMessage(_(u"Documento Cadastrado com sucesso"), "info")
                ctx.request.response.redirect(success_url)
                                   
            else:
                form_data['errors'] = errors
                form_data['data'] = data
                return form_data
          
        # se for um formulario de edicao 
        elif 'id' in form_keys:

            id = int(form.get('id'))
            data = ModelsConfigDocuments().get_ConfigDocuments_byID(id)
            
            D = {}
            for campo in campos.keys():
                D[campo] = getattr(data, campo, '')
              
            if data:
               form_data['data'] = D
               return form_data
            else:
               return form_data
              
        # se o usuario não estiver logado
        else:
            return form_data    
예제 #3
0
    def registration_processes(self, ctx):
        success_url = ctx.context.absolute_url() + '/edit-specialty'
        access_denied = ctx.context.absolute_url() + '/login'
        form = ctx.request # var tipo 'dict' que guarda todas as informacoes do formulario (keys,items,values)
        form_keys = form.keys() # var tipo 'list' que guarda todas as chaves do formulario (keys)
        campos = {
                  'name': {'required': True , 'type': to_utf8} #campo obrigatorio
                 } 
        
        if 'rest_id' in form_keys:
            if form.get('rest_id') != 'None':
                success_url = ctx.context.absolute_url() + '/manage-restaurant?id=' + form.get('rest_id')
        
        # divisao dos dicionarios "errors" e "convertidos"
        form_data = {
            'errors': {},
            'data': {},
            'campos':campos,}
        
        # se clicou no botao "Voltar"
        if 'form.voltar' in form_keys:
            ctx.request.response.redirect(success_url)
          
        # se clicou no botao "Salvar"
        elif 'form.submited' in form_keys:
            # Inicia o processamento do formulario
            # chama a funcao que valida os dados extraidos do formulario (valida_form) 
            errors, data = valida_form(campos, form)  
            
            if not errors:
                if 'id' in form_keys:
                    # editando...
                    id = int(form.get('id'))
                    result = self.get_food_specialty().find(id = id).one()
                    if result:
                        for campo in campos.keys():
                            value = data.get(campo, None)
                            setattr(result, campo, value)

                else:
                    #adicionando...
                    self.set_food_specialty(**data)
                        
                #Redirect back to the front page with a status message
                #IStatusMessage(ctx.request).addStatusMessage(_(u"Thank you for your order. We will contact you shortly"), "info")
                ctx.request.response.redirect(success_url)
                                   
            else:
                form_data['errors'] = errors
                form_data['data'] = data
                return form_data
          
        # se clicou no botão "Excluir"
        elif 'form.delete' in form_keys:
            if 'id' in form_keys:
                result = ModelsRestaurantPreferences().get_food_restaurant().find(vin_food_specialty_id = int(form.get('id')))
                if result.count() == 0:
                    record = self.get_food_specialty().find(id = int(form.get('id'))).one()
                    self.store.remove(record)
                    self.store.flush()
                    
                    ctx.request.response.redirect(success_url)
                else:
                    ctx.request.response.redirect(ctx.context.absolute_url() + '/manage-specialty?error=true&id=' + form.get('id'))

        # se for um formulario de edicao 
        elif 'id' in form_keys:
            id = int(form.get('id'))
            data = self.get_food_specialty().find(id = id).one()
            
            D = {}
            for campo in campos.keys():
                D[campo] = getattr(data, campo, '')
              
            if data:
               form_data['data'] = D
               return form_data
            else:
               return form_data
              
        # se o usuario não estiver logado
        else:
            return form_data