Esempio n. 1
0
    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
Esempio n. 2
0
    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
Esempio n. 3
0
    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
Esempio n. 4
0
    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'))
        )
Esempio n. 5
0
    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])
Esempio n. 6
0
    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')))
Esempio n. 7
0
    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
Esempio n. 8
0
    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']
Esempio n. 9
0
    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 ''})
Esempio n. 10
0
    def __init__(self, *args, **kwargs):

        self.proposicao_incorporacao_obrigatoria = \
            sapl.base.models.AppConfig.attr(
                'proposicao_incorporacao_obrigatoria')

        if self.proposicao_incorporacao_obrigatoria != 'C':
            if 'gerar_protocolo' in self._meta.fields:
                self._meta.fields.remove('gerar_protocolo')
        else:
            if 'gerar_protocolo' not in self._meta.fields:
                self._meta.fields.append('gerar_protocolo')

        if self.proposicao_incorporacao_obrigatoria == 'N':
            if 'numero_de_paginas' in self._meta.fields:
                self._meta.fields.remove('numero_de_paginas')
        else:
            if 'numero_de_paginas' not in self._meta.fields:
                self._meta.fields.append('numero_de_paginas')

        # esta chamada isola o __init__ de ProposicaoForm
        super(ProposicaoForm, self).__init__(*args, **kwargs)

        fields = [
            Fieldset(
                _('Dados Básicos'),
                to_column(('tipo_readonly', 4)),
                to_column(('data_envio', 3)),
                to_column(('autor_readonly', 5)),
                to_column(('descricao', 12)))]

        fields.append(
            Fieldset(_('Vinculado a Matéria Legislativa'),
                     to_column(('tipo_materia', 3)),
                     to_column(('numero_materia', 2)),
                     to_column(('ano_materia', 2)),
                     to_column(
                (Alert(_('O responsável pela incorporação pode '
                         'alterar a anexação. Limpar os campos '
                         'de Vinculação gera um %s independente '
                         'sem anexação se for possível para esta '
                         'Proposição. Não sendo, a rotina de incorporação '
                         'não permitirá estes campos serem vazios.'
                         ) % self.instance.tipo.content_type,
                       css_class="alert-info",
                       dismiss=False), 5)),
                to_column(
                (Alert('',
                       css_class="ementa_materia hidden alert-info",
                       dismiss=False), 12))))

        itens_incorporacao = [to_column(('regime_tramitacao', 4))]
        if self.proposicao_incorporacao_obrigatoria == 'C':
            itens_incorporacao.append(to_column((InlineRadios(
                'gerar_protocolo'), 4)))

        if self.proposicao_incorporacao_obrigatoria != 'N':
            itens_incorporacao.append(to_column(('numero_de_paginas', 4)))

        itens_incorporacao.append(to_column((FormActions(Submit(
            'incorporar', _('Incorporar'), css_class='pull-right')), 12)))

        fields.append(
            Fieldset(_('Registro de Incorporação'), *itens_incorporacao))

        fields.append(
            Fieldset(
                _('Registro de Devolução'),
                to_column(('justificativa_devolucao', 12)),
                to_column((FormActions(Submit(
                    'devolver', _('Devolver'),
                    css_class='btn-danger pull-right')), 12))
            ))
        self.helper = FormHelper()
        self.helper.layout = Layout(*fields)

        self.fields['tipo_readonly'].initial = self.instance.tipo.descricao
        self.fields['autor_readonly'].initial = str(self.instance.autor)

        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

        if self.proposicao_incorporacao_obrigatoria == 'C':
            self.fields['gerar_protocolo'].initial = True
Esempio n. 11
0
    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 ""}
                )
Esempio n. 12
0
    def __init__(self, *args, **kwargs):

        self.proposicao_incorporacao_obrigatoria = \
            sapl.base.models.AppConfig.attr(
                'proposicao_incorporacao_obrigatoria')

        if self.proposicao_incorporacao_obrigatoria != 'C':
            if 'gerar_protocolo' in self._meta.fields:
                self._meta.fields.remove('gerar_protocolo')
        else:
            if 'gerar_protocolo' not in self._meta.fields:
                self._meta.fields.append('gerar_protocolo')

        if self.proposicao_incorporacao_obrigatoria == 'N':
            if 'numero_de_paginas' in self._meta.fields:
                self._meta.fields.remove('numero_de_paginas')
        else:
            if 'numero_de_paginas' not in self._meta.fields:
                self._meta.fields.append('numero_de_paginas')

        # esta chamada isola o __init__ de ProposicaoForm
        super(ProposicaoForm, self).__init__(*args, **kwargs)

        fields = [
            Fieldset(
                _('Dados Básicos'),
                to_column(('tipo_readonly', 4)),
                to_column(('data_envio', 3)),
                to_column(('autor_readonly', 5)),
                to_column(('descricao', 12)))]

        fields.append(
            Fieldset(_('Vinculado a Matéria Legislativa'),
                     to_column(('tipo_materia', 3)),
                     to_column(('numero_materia', 2)),
                     to_column(('ano_materia', 2)),
                     to_column(
                (Alert(_('O responsável pela incorporação pode '
                         'alterar a anexação. Limpar os campos '
                         'de Vinculação gera um %s independente '
                         'sem anexação se for possível para esta '
                         'Proposição. Não sendo, a rotina de incorporação '
                         'não permitirá estes campos serem vazios.'
                         ) % self.instance.tipo.content_type,
                       css_class="alert-info",
                       dismiss=False), 5)),
                to_column(
                (Alert('',
                       css_class="ementa_materia hidden alert-info",
                       dismiss=False), 12))))

        itens_incorporacao = [to_column(('regime_tramitacao', 4))]
        if self.proposicao_incorporacao_obrigatoria == 'C':
            itens_incorporacao.append(to_column((InlineRadios(
                'gerar_protocolo'), 4)))

        if self.proposicao_incorporacao_obrigatoria != 'N':
            itens_incorporacao.append(to_column(('numero_de_paginas', 4)))

        itens_incorporacao.append(to_column((FormActions(Submit(
            'incorporar', _('Incorporar'), css_class='pull-right')), 12)))

        fields.append(
            Fieldset(_('Registro de Incorporação'), *itens_incorporacao))

        fields.append(
            Fieldset(
                _('Registro de Devolução'),
                to_column(('justificativa_devolucao', 12)),
                to_column((FormActions(Submit(
                    'devolver', _('Devolver'),
                    css_class='btn-danger pull-right')), 12))
            ))
        self.helper = FormHelper()
        self.helper.layout = Layout(*fields)

        self.fields['tipo_readonly'].initial = self.instance.tipo.descricao
        self.fields['autor_readonly'].initial = str(self.instance.autor)

        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

        if self.proposicao_incorporacao_obrigatoria == 'C':
            self.fields['gerar_protocolo'].initial = True
Esempio n. 13
0
    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 ''})