def __init__(self, *args, **kwargs): row1 = to_row([ ('codigo', 2), ('titulo', 4), ('perfil', 3), ('parlamentar', 3), ]) row2 = to_row([ ('visibilidade', 2), ('template_classe', 3), ('tipo_doc_padrao', 4), ('template_doc_padrao', 3), ]) row3 = to_row([ ('descricao', 12), ]) self.helper = FormHelper() self.helper.layout = SaplFormLayout( Fieldset(_('Identificação Básica'), row1, row2, row3)) super(ClasseForm, self).__init__(*args, **kwargs)
def __init__(self, *args, **kwargs): title_label = kwargs.pop('title_label') action_label = kwargs.pop('action_label') row1 = to_row( [ (Div( css_class="g-recaptcha float-right", # if not settings.DEBUG else '', data_sitekey=settings.GOOGLE_RECAPTCHA_SITE_KEY ), 5), ('email', 7), ] ) self.helper = FormHelper() self.helper.layout = SaplFormLayout( Fieldset( title_label, row1 ), actions=form_actions(label=action_label) ) super().__init__(*args, **kwargs)
def __init__(self, *args, **kwargs): tipo_select = Fieldset( TipoProposicao._meta.verbose_name, Div(to_column(('descricao', 5)), to_column(('content_type', 7)), css_class='clearfix'), to_column(('tipo_conteudo_related_radio', 6)), to_column(('perfis', 6))) self.helper = FormHelper() self.helper.layout = SaplFormLayout(tipo_select) super(TipoProposicaoForm, self).__init__(*args, **kwargs) content_types = ContentType.objects.get_for_models( *models_with_gr_for_model(TipoProposicao)) self.fields['content_type'].choices = [ (ct.pk, ct) for k, ct in content_types.items() ] self.fields['content_type'].choices.sort(key=lambda x: str(x[1])) if self.instance.pk: self.fields[ 'tipo_conteudo_related'].initial = self.instance.object_id
def __init__(self, *args, **kwargs): row1 = to_row( [('tipo', 4), ('numero', 4), ('ano', 4)]) row2 = to_row( [('data', 4), ('numero_protocolo', 4), ('ano_protocolo', 4)]) row3 = to_row( [('assunto', 12)]) row4 = to_row( [('interessado', 9), ('tramitacao', 3)]) row5 = to_row( [('texto_integral', 12)]) row6 = to_row( [('numero_externo', 4), ('dias_prazo', 6), ('data_fim_prazo', 2)]) row7 = to_row( [('observacao', 12)]) self.helper = FormHelper() self.helper.layout = SaplFormLayout( Fieldset(_('Identificação Básica'), row1, row2, row3, row4, row5), Fieldset(_('Outras Informações'), row6, row7)) super(DocumentoAdministrativoForm, self).__init__( *args, **kwargs)
def __init__(self, *args, **kwargs): self.helper = FormHelper() self.helper.layout = SaplFormLayout( to_row([ ('titulo', 7), ('visibilidade', 3), ('listar', 2) ]), to_row([ ('tipo', 4), ('template_doc', 4), ('capa', 4), ]), to_row([ ('descricao', 8), ('parlamentares', 4) ]), to_row([ ('materias', 12), ]), ) super(DocumentoForm, self).__init__(*args, **kwargs) self.fields['parlamentares'].choices = [ ('0', '--------------')] + list( self.fields['parlamentares'].choices) self.fields['materias'].choices = [ ('0', '--------------')] + [(m.id, str(m) + ' - ' + m.ementa) for m in self.fields['materias'].queryset[:200]] self.fields['capa'].initial = self.instance == self.instance.classe.capa
def __init__(self, *args, **kwargs): layout_form = Fieldset( VinculoDocDiarioOficial._meta.verbose_name, Row( to_column(('content_type', 3)), to_column(('tipo', 3)), to_column(('numero', 2)), to_column(('ano', 2)), to_column(('pagina', 2)), to_column(('diario', 0)), ), Alert('', css_class="doc_selected hidden alert-info", dismiss=False), ) self.helper = SaplFormHelper() self.helper.layout = SaplFormLayout(layout_form) super().__init__(*args, **kwargs) content_types = ContentType.objects.get_for_models( *models_with_gr_for_model(VinculoDocDiarioOficial)) self.fields['content_type'].choices = [ (ct.pk, ct) for k, ct in content_types.items() ] # Ordena por id self.fields['content_type'].choices.sort(key=lambda x: x[0])
def __init__(self, *args, **kwargs): row1 = to_row([('email', 12)]) self.helper = FormHelper() self.helper.layout = SaplFormLayout( Fieldset(_('Insira o e-mail cadastrado com a sua conta'), row1), actions=form_actions(label=_('Enviar'))) super(RecuperarSenhaForm, self).__init__(*args, **kwargs)
def __init__(self, *args, **kwargs): self.texto_articulado_proposicao = sapl.base.models.AppConfig.attr( 'texto_articulado_proposicao') if not self.texto_articulado_proposicao: if 'tipo_texto' in self._meta.fields: self._meta.fields.remove('tipo_texto') else: if 'tipo_texto' not in self._meta.fields: self._meta.fields.append('tipo_texto') fields = [ to_column((Fieldset( TipoProposicao._meta.verbose_name, Field('tipo')), 3)), Fieldset(_('Vincular a Matéria Legislativa Existente'), to_column(('tipo_materia', 4)), to_column(('numero_materia', 4)), to_column(('ano_materia', 4)) ), to_column( (Alert('teste', css_class="ementa_materia hidden alert-info", dismiss=False), 12)), to_column(('descricao', 12)), ] if self.texto_articulado_proposicao: fields.append( to_column((InlineRadios('tipo_texto'), 5)),) fields.append(to_column(( 'texto_original', 7 if self.texto_articulado_proposicao else 12))) self.helper = FormHelper() self.helper.layout = SaplFormLayout(*fields) super(ProposicaoForm, self).__init__(*args, **kwargs) if self.instance.pk: self.fields['tipo_texto'].initial = '' if self.instance.texto_original: self.fields['tipo_texto'].initial = 'D' if self.texto_articulado_proposicao: if self.instance.texto_articulado.exists(): self.fields['tipo_texto'].initial = 'T' if self.instance.materia_de_vinculo: self.fields[ 'tipo_materia' ].initial = self.instance.materia_de_vinculo.tipo self.fields[ 'numero_materia' ].initial = self.instance.materia_de_vinculo.numero self.fields[ 'ano_materia' ].initial = self.instance.materia_de_vinculo.ano
def __init__(self, *args, **kwargs): row1 = to_row([('arquivo', 4)]) row2 = to_row([('assunto', 12)]) self.helper = SaplFormHelper() self.helper.layout = SaplFormLayout( Fieldset(_('Identificação Básica'), row1, row2)) super(AnexoAudienciaPublicaForm, self).__init__(*args, **kwargs)
def __init__(self, *args, **kwargs): rows = [Div( to_column(( to_row([ ('titulo', 8), (Div( css_class="g-recaptcha", data_sitekey=settings.GOOGLE_RECAPTCHA_SITE_KEY ), 4), ('descricao', 12), (Alert(_( """<strong>Aviso</strong><br> As manifestações registradas de maneira anônima são consideradas "Comunicações" e <strong class="text-red">não é possível o seu acompanhamento.</strong> Caso deseje acompanhar o andamento da sua manifestação e receber uma resposta do órgão ou entidade, por favor identifique-se. """), css_class="alert-warning", dismiss=False), 12) ]), 12)), # to_column(( # to_row([('areatrabalho_parlamentar', 12)]), # 4)), css_class="row" )] if 'logged_user' in kwargs['initial'] and \ kwargs['initial']['logged_user']: rows.insert( 0, Alert( _('<strong>Atenção, você foi desconectado!!!</strong><br>' 'Ao escolher fazer uma denúncia anônima, ' 'o Portal da Câmara Municipal de Jataí desconectou seu ' 'usuário para que sua manifestação não tenha nenhuma ' 'relação com você. ' 'Assim podemos garantir que sua denûncia é anônima ' 'e não mantemos registro sobre você.<br>' 'Para voltar a utilizar das funções que você possuia ' 'ao estar logado, é só se conectar novamente.'), css_class="alert-info")) super().__init__(*args, **kwargs) self.helper = FormHelper() self.helper.layout = SaplFormLayout( *rows, actions=form_actions(label=_('Enviar')) )
def __init__(self, *args, **kwargs): self.user_session = kwargs.pop('user_session', None) row_pwd = to_row([('email', 4), ('first_name', 3), ('last_name', 3), ('is_active', 2), ('new_password1', 4), ('new_password2', 4), (FieldWithButtons( 'token', StrictButton('Renovar', id="renovar-token", css_class="btn-outline-primary")), 4), ('areatrabalho', 6), ('autor', 6), ('groups', 12), ('user_permissions', 12)]) self.helper = SaplFormHelper() self.helper.layout = SaplFormLayout(row_pwd) super(CmjUserAdminForm, self).__init__(*args, **kwargs) if self.instance.pk: self.fields['token'].initial = self.instance.auth_token.key oper_at = self.instance.operadorareatrabalho_set.first() if oper_at: self.fields['areatrabalho'].initial = oper_at.areatrabalho.id oper_aut = self.instance.operadorautor_set.first() if oper_aut: self.fields['autor'].initial = oper_aut.autor.id self.fields['autor'].choices = [('', '----------')] + [ (a.id, '{} - {}'.format(a, a.tipo)) for a in Autor.objects.all().order_by('nome') ] self.fields['groups'].widget = forms.CheckboxSelectMultiple() self.fields['groups'].choices = [ (g.id, g) for g in self.instance.groups.all().order_by('name') ] + [(g.id, g) for g in Group.objects.exclude( user=self.instance).order_by('name')] self.fields[ 'user_permissions'].widget = forms.CheckboxSelectMultiple() self.fields['user_permissions'].choices = [ (p.id, p) for p in self.instance.user_permissions.all().order_by( 'content_type__app_label', 'content_type__model', 'codename') ] + [(p.id, p) for p in Permission.objects.exclude( user=self.instance).order_by('content_type__app_label', 'content_type__model', 'codename') ]
def __init__(self, *args, **kwargs): rows = [ Div( to_column((to_row([ ('titulo', 8), (Div(css_class="g-recaptcha" if not settings.DEBUG else '', data_sitekey=settings.GOOGLE_RECAPTCHA_SITE_KEY), 4), ('descricao', 12), (Alert(_("""<strong>Aviso</strong><br> Ao enviar uma Denúncia Anônima, você receberá um link para acompanhar sua denúncia.<br> Só será possível acompanhar e interagir com a ouvidoria através deste link.<br> Veja que este link será como um código privativo seu sem sua identificação, no entanto, se você compartilhar esse link, quem possuí-lo verá sua denúncia e poderá interagir também. """), css_class="alert-warning", dismiss=False), 12) ]), 12)), # to_column(( # to_row([('areatrabalho_parlamentar', 12)]), # 4)), css_class="row") ] if 'logged_user' in kwargs['initial'] and \ kwargs['initial']['logged_user']: rows.insert( 0, Alert(_( '<strong>Atenção, você foi desconectado!!!</strong><br>' 'Ao escolher fazer uma denúncia anônima, ' 'o Portal da Câmara Municipal de Jataí desconectou seu ' 'usuário para que sua manifestação não tenha nenhuma ' 'relação com você. ' 'Assim podemos garantir que sua denûncia é anônima ' 'e não mantemos registro sobre você.<br>' 'Para voltar a utilizar das funções que você possuia ' 'ao estar logado, é só se conectar novamente.'), css_class="alert-info")) super().__init__(*args, **kwargs) self.helper = FormHelper() self.helper.layout = SaplFormLayout( *rows, actions=form_actions(label=_('Enviar')))
def __init__(self, *args, **kwargs): rows = to_row([('descricao', 12), ('anexo', 12)]) super().__init__(*args, **kwargs) self.helper = FormHelper() self.helper.layout = SaplFormLayout( *rows, actions=form_actions(label=_('Enviar')) ) self.instance.owner = kwargs['initial']['owner'] self.instance.solicitacao = kwargs['initial']['solicitacao']
def __init__(self, *args, **kwargs): row1 = to_row([('parlamentar', 12)]) row2 = to_row([('data', 6), ('hora', 6)]) row3 = to_row([('upload_anexo', 6)]) row4 = to_row([('tipo_ausencia', 12)]) row5 = to_row([('ausencia', 12)]) row6 = to_row([('materias_do_expediente', 12)]) row7 = to_row([('materias_da_ordem_do_dia', 12)]) row8 = to_row([('observacao', 12)]) self.helper = SaplFormHelper() self.helper.layout = SaplFormLayout( Fieldset(_('Justificativa de Ausência'), row1, row2, row3, row4, row5, row6, row7, row8)) q = Q(sessao_plenaria=kwargs['initial']['sessao_plenaria']) ordens = OrdemDia.objects.filter(q) expedientes = ExpedienteMateria.objects.filter(q) legislatura = kwargs['initial']['sessao_plenaria'].legislatura mandato = Mandato.objects.filter( legislatura=legislatura).order_by('parlamentar__nome_parlamentar') parlamentares = [m.parlamentar for m in mandato] super(JustificativaAusenciaForm, self).__init__(*args, **kwargs) presencas = SessaoPlenariaPresenca.objects.filter(q).order_by( 'parlamentar__nome_parlamentar') presencas_ordem = PresencaOrdemDia.objects.filter(q).order_by( 'parlamentar__nome_parlamentar') presentes = [p.parlamentar for p in presencas] presentes_ordem = [p.parlamentar for p in presencas_ordem] presentes_ambos = set(presentes).intersection(set(presentes_ordem)) setFinal = set(parlamentares) - presentes_ambos self.fields['materias_do_expediente'].choices = [(e.id, e.materia) for e in expedientes] self.fields['materias_da_ordem_do_dia'].choices = [(o.id, o.materia) for o in ordens] self.fields['parlamentar'].choices = [("0", "------------") ] + [(p.id, p) for p in setFinal]
def __init__(self, *args, **kwargs): row1 = to_row([('tipo_de_retirada', 5), ('parlamentar', 4), ('data', 3)]) row2 = to_row([('ordem', 6), ('expediente', 6)]) row3 = to_row([('observacao', 12)]) self.helper = SaplFormHelper() self.helper.layout = SaplFormLayout( Fieldset(_('Retirada de Pauta'), row1, row2, row3)) q = Q(sessao_plenaria=kwargs['initial']['sessao_plenaria']) ordens = OrdemDia.objects.filter(q) expedientes = ExpedienteMateria.objects.filter(q) retiradas_ordem = [ r.ordem for r in RetiradaPauta.objects.filter(q, ordem__in=ordens) ] retiradas_expediente = [ r.expediente for r in RetiradaPauta.objects.filter(q, expediente__in=expedientes) ] setOrdem = set(ordens) - set(retiradas_ordem) setExpediente = set(expedientes) - set(retiradas_expediente) super(RetiradaPautaForm, self).__init__(*args, **kwargs) if self.instance.pk: setOrdem = set(ordens) setExpediente = set(expedientes) presencas = SessaoPlenariaPresenca.objects.filter(q).order_by( 'parlamentar__nome_parlamentar') presentes = [p.parlamentar for p in presencas] self.fields['expediente'].choices = [(None, "------------")] + [ (e.id, e.materia) for e in setExpediente ] self.fields['ordem'].choices = [(None, "------------")] + [ (o.id, o.materia) for o in setOrdem ] self.fields['parlamentar'].choices = [(None, "------------")] + [ (p.id, p) for p in presentes ]
def __init__(self, *args, **kwargs): yaml_layout = kwargs.pop('yaml_layout') q_field = Div( FieldWithButtons( Field('q', placeholder=_('Filtrar Lista'), autocomplete='off', type='search', onkeypress='atualizaContatos(event)'), StrictButton(_('Filtrar'), css_class='btn-outline-primary', type='button', onclick='atualizaContatos(event)')), Div(css_class='form-group-contato-search')) q = [ _('Seleção de Contatos'), [(q_field, 5), (Div(Field('contatos'), css_class='form-group-contatos'), 7)] ] yaml_layout.append(q) self.helper = FormHelper() self.helper.field_class = 'controls' self.helper.layout = SaplFormLayout(*yaml_layout) super(GrupoDeContatosForm, self).__init__(*args, **kwargs) self.fields['q'].help_text = _('Digite parte do nome, nome social ou ' 'apelido do Contato que você procura.') self.fields['contatos'].widget = forms.CheckboxSelectMultiple() self.fields['contatos'].queryset = Contato.objects.all() self.fields['contatos'].choices = [ (c.pk, c) for c in self.instance.contatos.order_by('nome')]\ if self.instance.pk else [] self.fields['contatos'].help_text = _( 'Procure por Contatos na caixa de buscas e arraste ' 'para esta caixa os Contatos interessados neste Processo.')
def __init__(self, *args, **kwargs): row = Div( to_column((to_row([ ('titulo', 10), ('tipo', 2), ('descricao', 12), ]), 12)), # to_column(( # to_row([('areatrabalho_parlamentar', 12)]), # 4)), css_class="row") super().__init__(*args, **kwargs) self.helper = FormHelper() self.helper.layout = SaplFormLayout( row, actions=form_actions(label=_('Enviar'))) self.instance.owner = kwargs['initial']['owner']
def __init__(self, *args, **kwargs): super(CmjUserChangeForm, self).__init__(*args, **kwargs) row_pwd = [ to_row([('old_password', 12)]), to_row([('new_password1', 6), ('new_password2', 6)]) ] row_pwd = [] if self.instance.pwd_created: row_pwd.append(to_row([('old_password', 12)])) row_pwd += [to_row([('new_password1', 6), ('new_password2', 6)])] rows = to_row([ (Fieldset( _('Cadastro Básico'), to_row([('first_name', 5), ('last_name', 4), ('be_notified_by_email', 3), ('avatar', 7), ('cropping', 5)])), 8), (Fieldset( _('Definição de senha'), *row_pwd, Alert(_('Após a definição e/ou alteração de senha, ' 'sua tela será redirecionada para a tela de Login ' 'para que você faça uma nova autenticação.'), css_class="alert-info", dismiss=False)), 4) ]) self.helper = FormHelper() self.helper.layout = SaplFormLayout(rows) self.helper.include_media = False if not self.instance.pwd_created: self.fields['old_password'].widget = forms.HiddenInput() avatar = self.fields['avatar'].widget avatar.attrs.update(get_attrs(self.instance.avatar, 'avatar')) if 'class' in avatar.attrs: avatar.attrs.pop('class')
def __init__(self, *args, **kwargs): autor_related = Div( FieldWithButtons( Field('q', placeholder=_('Pesquisar por possíveis autores para ' 'o Tipo de Autor selecionado.')), StrictButton( _('Filtrar'), css_class='btn-default btn-filtrar-autor', type='button')), css_class='hidden', data_action='create', data_application='AutorSearch', data_field='autor_related') autor_select = Row(to_column(('tipo', 3)), Div(to_column(('nome', 5)), to_column(('cargo', 4)), css_class="div_nome_cargo"), to_column((autor_related, 9)), to_column((Div( Field('autor_related'), css_class='radiogroup-autor-related hidden'), 12))) row2 = Row(to_column((InlineRadios('action_user'), 8)), to_column((Div('username'), 4))) row3 = Row(to_column(('senha', 3)), to_column(('senha_confirma', 3)), to_column(('email', 3)), to_column(('confirma_email', 3)), css_class='new_user_fields hidden') row4 = Row(to_column(( Div(InlineRadios('status_user'), css_class='radiogroup-status hidden'), 12))) if 'status_user' in self.Meta.fields else None controle_acesso = [row2, row3] if row4: controle_acesso.append(row4) controle_acesso = Fieldset(_('Controle de Acesso do Autor'), *controle_acesso) self.helper = FormHelper() self.helper.layout = SaplFormLayout(autor_select, controle_acesso) super(AutorForm, self).__init__(*args, **kwargs) self.fields['action_user'].initial = 'N' if self.instance.pk: if self.instance.autor_related: self.fields['autor_related'].choices = [ (self.instance.autor_related.pk, self.instance.autor_related)] self.fields['q'].initial = '' self.fields['autor_related'].initial = self.instance.autor_related if self.instance.user: self.fields['username'].initial = getattr( self.instance.user, get_user_model().USERNAME_FIELD) self.fields['action_user'].initial = 'A' self.fields['username'].label = string_concat( self.fields['username'].label, ' (', getattr( self.instance.user, get_user_model().USERNAME_FIELD), ')') if 'status_user' in self.Meta.fields: self.fields['status_user'].initial = 'R' self.fields['status_user'].label = string_concat( self.fields['status_user'].label, ' (', getattr( self.instance.user, get_user_model().USERNAME_FIELD), ')') self.fields['username'].widget.attrs.update({ 'data': getattr( self.instance.user, get_user_model().USERNAME_FIELD) if self.instance.user else ''}) if 'status_user' in self.Meta.fields: self.fields['status_user'].widget.attrs.update({ 'data': getattr( self.instance.user, get_user_model().USERNAME_FIELD) if self.instance.user else ''})
def __init__(self, *args, **kwargs): yaml_layout = kwargs.pop('yaml_layout') q_field = Div( FieldWithButtons( Field('q', placeholder=_('Filtrar Lista'), autocomplete='off', type='search', onkeypress='atualizaContatos(event)'), StrictButton(_('Filtrar'), css_class='btn-outline-primary', type='button', onclick='atualizaContatos(event)')), Div(css_class='form-group-contato-search ' 'controls-radio-checkbox')) q = [ _('Seleção de Contatos'), [(q_field, 5), (Div(Field('contatos'), css_class='form-group-contatos'), 7)] ] yaml_layout.append(q) for fieldset in yaml_layout: for linha in fieldset: for idx, field in enumerate(linha): if field[0] == 'importancia': linha[idx] = (InlineRadios('importancia'), field[1]) self.helper = FormHelper() self.helper.field_class = 'controls' self.helper.layout = SaplFormLayout(*yaml_layout) super(ProcessoForm, self).__init__(*args, **kwargs) if not self.instance.pk: self.fields['data'].initial = date.today() self.fields['q'].help_text = _('Digite parte do nome, nome social ou ' 'apelido do Contato que você procura.') self.fields['topicos'].widget = forms.SelectMultiple( attrs={'size': '8'}) self.fields['topicos'].queryset = TopicoProcesso.objects.all() self.fields['assuntos'].widget = forms.SelectMultiple( attrs={'size': '8'}) self.fields['assuntos'].queryset = AssuntoProcesso.objects.filter( workspace=self.initial['workspace']) # Utilizando template bootstrap3 customizado self.fields['importancia'].widget = forms.RadioSelect() self.fields['importancia'].choices = IMPORTANCIA_CHOICE self.fields['status'].widget = forms.RadioSelect() # self.fields['status'].inline_class = True self.fields['status'].choices = [ (ass.pk, ass) for ass in StatusProcesso.objects.order_by('id') ] self.fields['classificacoes'].widget = forms.CheckboxSelectMultiple() # self.fields['classificacoes'].inline_class = True self.fields['contatos'].widget = forms.CheckboxSelectMultiple() self.fields['contatos'].queryset = Contato.objects.all() self.fields['contatos'].choices = [ (c.pk, c) for c in self.instance.contatos.order_by('nome')]\ if self.instance.pk else [] self.fields['contatos'].help_text = _( 'Procure por Contatos na caixa de buscas e arraste ' 'para esta caixa os Contatos interessados neste Processo.')