Skip to content

Commit

Permalink
Merge vindula2 in master
Browse files Browse the repository at this point in the history
  • Loading branch information
Denis Raison committed May 8, 2015
2 parents 15db424 + 59fb950 commit 26f5c38
Show file tree
Hide file tree
Showing 35 changed files with 1,332 additions and 512 deletions.
4 changes: 3 additions & 1 deletion docs/sql/contentcore-1.1.25.sql
Original file line number Diff line number Diff line change
@@ -1 +1,3 @@
ALTER TABLE `vindula_myvindulaDB`.`vin_contentcore_fields` ADD COLUMN `flag_float_left` TINYINT(1) DEFAULT False AFTER `forms_id`;

-- ALTER TABLE `vindula_myvindulaDB`.`vin_contentcore_fields` ADD COLUMN `flag_float_left` TINYINT(1) DEFAULT False AFTER `forms_id`;
ALTER TABLE `vindula_myvindulaDB`.`vin_contentcore_log` ADD COLUMN `username` VARCHAR(100) DEFAULT NULL AFTER `valor_new`;
93 changes: 93 additions & 0 deletions docs/sql/contentcore-1.1.26.sql
Original file line number Diff line number Diff line change
@@ -0,0 +1,93 @@
-- MySQL dump 10.13 Distrib 5.5.24, for debian-linux-gnu (x86_64)
--
-- Host: localhost Database: vindula_myvindulaDB_homolog
-- ------------------------------------------------------
-- Server version 5.5.24-0ubuntu0.12.04.1

/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8 */;
/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */;
/*!40103 SET TIME_ZONE='+00:00' */;
/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;

--
-- Table structure for table `vin_myvindula_holerite02`
--

USE `vindula_myvindulaDB`;

DROP TABLE IF EXISTS `vin_myvindula_holerite02`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `vin_myvindula_holerite02` (
`id` int(100) NOT NULL AUTO_INCREMENT,
`empresa` varchar(42) DEFAULT NULL,
`cnpj_empresa` varchar(20) DEFAULT NULL,
`competencia` varchar(7) DEFAULT NULL,
`matricula` varchar(11) DEFAULT NULL,
`nome` varchar(42) DEFAULT NULL,
`data_admissao` varchar(11) DEFAULT NULL,
`cargo` varchar(26) DEFAULT NULL,
`setor` varchar(26) DEFAULT NULL,
`carteira_trabalho` varchar(17) DEFAULT NULL,
`secao` varchar(6) DEFAULT NULL,
`dep_ir` varchar(3) DEFAULT NULL,
`dep_sf` varchar(3) DEFAULT NULL,
`cpf` varchar(15) DEFAULT NULL,
`indentidade` varchar(21) DEFAULT NULL,
`pis` varchar(15) DEFAULT NULL,
`salario_base` varchar(11) DEFAULT NULL,
`cod_pagamento` varchar(3) DEFAULT NULL,
`banco_pag` varchar(26) DEFAULT NULL,
`agencia` varchar(16) DEFAULT NULL,
`conta_corrente` varchar(16) DEFAULT NULL,
`date_creation` datetime NOT NULL,
`base_fgts` varchar(11) DEFAULT NULL,
`base_Inss` varchar(11) DEFAULT NULL,
`base_irrf` varchar(11) DEFAULT NULL,
`salario_contribuicao` varchar(11) DEFAULT NULL,
`total_proventos` varchar(11) DEFAULT NULL,
`total_desconto` varchar(11) DEFAULT NULL,
`fgts_mes` varchar(11) DEFAULT NULL,
`valor_liquido` varchar(11) DEFAULT NULL,
`observacao` varchar(100) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=1227 DEFAULT CHARSET=latin1;
/*!40101 SET character_set_client = @saved_cs_client */;

--
-- Table structure for table `vin_myvindula_descricao_holerite02`
--

DROP TABLE IF EXISTS `vin_myvindula_descricao_holerite02`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `vin_myvindula_descricao_holerite02` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`codigo` varchar(4) DEFAULT NULL,
`descricao` varchar(31) DEFAULT NULL,
`valor` varchar(11) DEFAULT NULL,
`status` varchar(2) DEFAULT NULL,
`referencial` varchar(10) DEFAULT NULL,
`vin_myvindula_holerite02_id` int(100) NOT NULL,
PRIMARY KEY (`id`),
KEY `fk_vin_myvindula_descricao_holerite02_vin_myvindula_holerite021` (`vin_myvindula_holerite02_id`),
CONSTRAINT `fk_vin_myvindula_descricao_holerite02_vin_myvindula_holerite021` FOREIGN KEY (`vin_myvindula_holerite02_id`) REFERENCES `vin_myvindula_holerite02` (`id`) ON DELETE NO ACTION ON UPDATE NO ACTION
) ENGINE=InnoDB AUTO_INCREMENT=12464 DEFAULT CHARSET=latin1;
/*!40101 SET character_set_client = @saved_cs_client */;
/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */;

/*!40101 SET SQL_MODE=@OLD_SQL_MODE */;
/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */;
/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */;
/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;

-- Dump completed on 2014-02-19 21:08:42
1 change: 1 addition & 0 deletions docs/sql/contentcore-1.1.27.sql
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
ALTER TABLE `vindula_myvindulaDB`.`vin_contentcore_forms` ADD COLUMN `uid_form` VARCHAR(255) DEFAULT NULL AFTER `description_form`;
85 changes: 68 additions & 17 deletions vindula/contentcore/base.py
Original file line number Diff line number Diff line change
Expand Up @@ -125,6 +125,18 @@ def get_email_user_login(self):
return obj_user.get('email','none')


#Retorna um numero sequencial para o registro do formulario
def get_codigo_registro(self):
form_id = self.context.forms_id
from vindula.contentcore.models.form_instance import ModelsFormInstance
number_itens = ModelsFormInstance().get_Instance(int(form_id),True)
if number_itens:
number_itens = number_itens.count()
if number_itens:
return number_itens + 1
return 1


def getValue(self,campo,request,data,default_value):
if campo in request.keys():
if request.get(campo, None):
Expand Down Expand Up @@ -315,12 +327,15 @@ def converte_data(self, data, data_atual=False):

def decodePickle(self,valor):
if valor:
return pickle.loads(str(valor))
try:
return pickle.loads(str(valor))
except (IndexError, KeyError):
return [valor]
else:
return ''


def geraHTMLContent(self,id,tipo,valor):
def geraHTMLContent(self,id,tipo,valor,full_text=False):
if tipo == 'list':
txt = ''
for i in self.decodePickle(valor):
Expand Down Expand Up @@ -379,6 +394,12 @@ def geraHTMLContent(self,id,tipo,valor):
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)

Expand All @@ -389,26 +410,48 @@ def geraHTMLContent(self,id,tipo,valor):
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)
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

return dados_label.value
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 convertSelect(self,valor, tipo, id):
if tipo == 'list':
txt = ''
for i in self.decodePickle(valor):
if txt:
txt += ', ' + i
else:
txt += i

txt = ''
for i in self.decodePickle(valor):
txt += i +', '

return txt

return txt
elif tipo == 'choice':

campo = ModelsFormFields().get_Fields_byIdField(id)
if campo:
items = campo.list_values.splitlines()
Expand All @@ -421,7 +464,6 @@ def convertSelect(self,valor, tipo, id):
return L[1]

return valor

elif tipo == 'date':
data = self.decodePickle(valor)
try:
Expand Down Expand Up @@ -474,7 +516,11 @@ def envia_email(self,ctx, msg, assunto, mail_para, arquivos=[],to_email=None):
mensagem.preamble = 'This is a multi-part message in MIME format.'


email_layout_obj = LayoutEmail(msg=msg, ctx=ctx.context)
if hasattr(ctx, 'context'):
email_layout_obj = LayoutEmail(msg=msg, ctx=ctx.context)
else:
email_layout_obj = LayoutEmail(msg=msg, ctx=ctx)

mensagem.attach(MIMEText(email_layout_obj.layout(), 'html', 'utf-8'))

# Atacha os arquivos
Expand Down Expand Up @@ -535,6 +581,7 @@ def geraCampos(self,form_data):
# index = campos[campo].get('ordem',0)
tmp = ""
valor = ''
obj_campo = campos[campo].get('obj','')
if not 'outros_hidden' in campo:
type_campo = campos[campo].get('type', '')

Expand Down Expand Up @@ -654,7 +701,9 @@ def geraCampos(self,form_data):
valor += "</div>"

elif type_campo == 'foreign_key':
valor += "<select name='%s' class='select-filter'>"%(campo)
refform = obj_campo.ref_form

valor += "<select name='%s' class='select-filter' data-ref_from='%s' data-id_field='%s' >"%(campo,refform.id,refform.campo_chave)
valor += "<option value="">-- Selecione --</option>"
for item in value_choice[campo]:
if item[0] == self.getValue(campo,self.request,data,default_value):
Expand All @@ -663,6 +712,8 @@ def geraCampos(self,form_data):
valor +="<option value='%s'>%s</option>"%(item[0], item[-1])

valor += "</select>"
valor += '<div id="ajax_content_%s"> </div>' %(campo)


elif type_campo == 'richtext':
url = self.context.absolute_url()
Expand Down
38 changes: 38 additions & 0 deletions vindula/contentcore/browser/ajax_reference.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
# -*- coding: utf-8 -*-
from five import grok

from vindula.contentcore.formulario import IFormularioPadrao

from vindula.contentcore.models.fields import ModelsFormFields
from vindula.contentcore.models.form_values import ModelsFormValues

grok.templatedir('views_templates')

class VindulaAjaxReferenceView(grok.View):
grok.context(IFormularioPadrao)
grok.require('zope2.View')
grok.name('ajax-reference')



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)

48 changes: 48 additions & 0 deletions vindula/contentcore/browser/myvindula.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
# -*- coding: utf-8 -*-
from five import grok
from zope.interface import Interface
from Products.CMFCore.utils import getToolByName
from vindula.contentcore.base import BaseFunc

from vindula.contentcore.browser.views import VindulaMyListPedidoView, VindulaListPedidosView

from Products.CMFCore.interfaces import ISiteRoot
from datetime import datetime , timedelta
from dateutil.relativedelta import relativedelta

# Views
class BuscaFormulario(object):

def list_formularios(self):
portal_catalog = getToolByName(self.context, 'portal_catalog')
portal = self.context.portal_url.getPortalObject()
itens = portal_catalog(**{'portal_type':['vindula.contentcore.formulariobasico'],
'path':{'query':'/'.join(portal.getPhysicalPath()), 'depth': 99}
})
return itens

def get_data_final(self):
date = datetime.now() + timedelta(days=1)
return date.strftime('%d/%m/%Y')

def get_data_inicial(self):
date = datetime.now() - relativedelta(months=1)
return date.strftime('%d/%m/%Y')

class MinhasSolicitacoesView(grok.View,BuscaFormulario):
grok.context(ISiteRoot)
grok.require('zope2.View')
grok.name('minhas-solicitacoes')

# def update(self,form_id=None):
# setattr(self, 'form_id', form_id)
# super(MinhasSolicitacoesView,self).update()

class GerenciarSolicitacoesView(grok.View,BuscaFormulario):
grok.context(ISiteRoot)
grok.require('zope2.View')
grok.name('gerenciar-solicitacoes')

# def update(self,form_id=None):
# setattr(self, 'form_id', form_id)
# super(GerenciarSolicitacoesView,self).update()
Loading

0 comments on commit 26f5c38

Please sign in to comment.