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 cria_models_tipo_autor(app_config=None, verbosity=2, interactive=True, using=DEFAULT_DB_ALIAS, **kwargs): models = models_with_gr_for_model(Autor) print("\n\033[93m\033[1m{}\033[0m".format( _('Atualizando registros TipoAutor do SAPL:'))) for model in models: content_type = ContentType.objects.get_for_model(model) tipo_autor = TipoAutor.objects.filter( content_type=content_type.id).exists() if tipo_autor: msg1 = "Carga de {} não efetuada.".format( TipoAutor._meta.verbose_name) msg2 = " Já Existe um {} {} relacionado...".format( TipoAutor._meta.verbose_name, model._meta.verbose_name) msg = " {}{}".format(msg1, msg2) else: novo_autor = TipoAutor() novo_autor.content_type_id = content_type.id novo_autor.descricao = model._meta.verbose_name novo_autor.save() msg1 = "Carga de {} efetuada.".format(TipoAutor._meta.verbose_name) msg2 = " {} {} criado...".format(TipoAutor._meta.verbose_name, content_type.model) msg = " {}{}".format(msg1, msg2) print(msg) # Disconecta função para evitar a chamada repetidas vezes. post_migrate.disconnect(receiver=cria_models_tipo_autor)
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): super(TipoAutorForm, self).__init__(*args, **kwargs) content_types = ContentType.objects.get_for_models(*models_with_gr_for_model(Autor)) self.fields["content_type"].choices = [("", _("Outros (Especifique)"))] + [ (ct.pk, ct) for key, ct in content_types.items() ]
def __init__(self, *args, **kwargs): super(TipoAutorForm, self).__init__(*args, **kwargs) content_types = ContentType.objects.get_for_models( *models_with_gr_for_model(Autor)) self.fields['content_type'].choices = [ ('', _('Outros (Especifique)')) ] + [(ct.pk, ct) for key, ct in content_types.items()]
def test_proposicao_submit(admin_client): tipo_autor = baker.make(TipoAutor, descricao='Teste Tipo_Autor') user = get_user_model().objects.filter(is_active=True)[0] autor = baker.make(Autor, tipo=tipo_autor, nome='Autor Teste') autor_user = mommy.make(AutorUser, user=user, autor=autor) file_content = 'file_content' texto = SimpleUploadedFile("file.txt", file_content.encode('UTF-8')) mcts = ContentType.objects.get_for_models( *models_with_gr_for_model(TipoProposicao)) for pk, mct in enumerate(mcts): tipo_conteudo_related = baker.make(mct, pk=pk + 1) response = admin_client.post( reverse('sapl.materia:proposicao_create'), { 'tipo': baker.make(TipoProposicao, pk=3, tipo_conteudo_related=tipo_conteudo_related).pk, 'descricao': 'Teste proposição', 'justificativa_devolucao': ' ', 'status': 'E', 'autor': autor.pk, 'texto_original': texto, 'salvar': 'salvar', 'receber_recibo': 'True', }, follow=True) assert response.status_code == 200 proposicao = Proposicao.objects.first() assert proposicao is not None assert proposicao.descricao == 'Teste proposição' assert proposicao.tipo.pk == 3 assert proposicao.tipo.tipo_conteudo_related.pk == pk + 1
def test_proposicao_submit(admin_client): tipo_autor = mommy.make(TipoAutor, descricao='Teste Tipo_Autor') user = get_user_model().objects.filter(is_active=True)[0] autor = mommy.make( Autor, user=user, tipo=tipo_autor, nome='Autor Teste') file_content = 'file_content' texto = SimpleUploadedFile("file.txt", file_content.encode('UTF-8')) mcts = ContentType.objects.get_for_models( *models_with_gr_for_model(TipoProposicao)) for pk, mct in enumerate(mcts): tipo_conteudo_related = mommy.make(mct, pk=pk + 1) response = admin_client.post( reverse('sapl.materia:proposicao_create'), {'tipo': mommy.make( TipoProposicao, pk=3, tipo_conteudo_related=tipo_conteudo_related).pk, 'descricao': 'Teste proposição', 'justificativa_devolucao': ' ', 'status': 'E', 'autor': autor.pk, 'texto_original': texto, 'salvar': 'salvar', }, follow=True) assert response.status_code == 200 proposicao = Proposicao.objects.first() assert proposicao is not None assert proposicao.descricao == 'Teste proposição' assert proposicao.tipo.pk == 3 assert proposicao.tipo.tipo_conteudo_related.pk == pk + 1
def build(cls): models_with_gr_for_autor = models_with_gr_for_model(Autor) for _model in models_with_gr_for_autor: @action(detail=False, name=_model._meta.model_name) def actionclass(self, request, *args, **kwargs): model = getattr(self, self.action)._AutorViewSet__model content_type = ContentType.objects.get_for_model(model) return self.list_for_content_type(content_type) func = actionclass func.mapping['get'] = func.kwargs['name'] func.url_name = func.kwargs['name'] func.url_path = func.kwargs['name'] func.__model = _model setattr(cls, _model._meta.model_name, func) return cls
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