|
@ -736,8 +736,14 @@ class ProposicaoCrud(Crud): |
|
|
container_field = 'autor__user' |
|
|
container_field = 'autor__user' |
|
|
|
|
|
|
|
|
class BaseMixin(Crud.BaseMixin): |
|
|
class BaseMixin(Crud.BaseMixin): |
|
|
list_field_names = ['data_envio', 'data_recebimento', 'descricao', |
|
|
list_field_names = [ |
|
|
'tipo', 'conteudo_gerado_related', 'cancelado', ] |
|
|
'data_envio', |
|
|
|
|
|
'data_recebimento', |
|
|
|
|
|
'descricao', |
|
|
|
|
|
'tipo', |
|
|
|
|
|
'conteudo_gerado_related', |
|
|
|
|
|
'cancelado' |
|
|
|
|
|
] |
|
|
|
|
|
|
|
|
class BaseLocalMixin: |
|
|
class BaseLocalMixin: |
|
|
form_class = ProposicaoForm |
|
|
form_class = ProposicaoForm |
|
@ -751,22 +757,23 @@ class ProposicaoCrud(Crud): |
|
|
def get(self, request, *args, **kwargs): |
|
|
def get(self, request, *args, **kwargs): |
|
|
|
|
|
|
|
|
if not self._action_is_valid(request, *args, **kwargs): |
|
|
if not self._action_is_valid(request, *args, **kwargs): |
|
|
return redirect(reverse('sapl.materia:proposicao_detail', |
|
|
return redirect(reverse('sapl.materia:proposicao_detail', kwargs={'pk': kwargs['pk']})) |
|
|
kwargs={'pk': kwargs['pk']})) |
|
|
|
|
|
return super().get(self, request, *args, **kwargs) |
|
|
return super().get(self, request, *args, **kwargs) |
|
|
|
|
|
|
|
|
def post(self, request, *args, **kwargs): |
|
|
def post(self, request, *args, **kwargs): |
|
|
|
|
|
|
|
|
if not self._action_is_valid(request, *args, **kwargs): |
|
|
if not self._action_is_valid(request, *args, **kwargs): |
|
|
return redirect(reverse('sapl.materia:proposicao_detail', |
|
|
return redirect(reverse('sapl.materia:proposicao_detail', kwargs={'pk': kwargs['pk']})) |
|
|
kwargs={'pk': kwargs['pk']})) |
|
|
|
|
|
return super().post(self, request, *args, **kwargs) |
|
|
return super().post(self, request, *args, **kwargs) |
|
|
|
|
|
|
|
|
class DetailView(Crud.DetailView): |
|
|
class DetailView(Crud.DetailView): |
|
|
layout_key = 'Proposicao' |
|
|
layout_key = 'Proposicao' |
|
|
permission_required = (RP_DETAIL, 'materia.detail_proposicao_enviada', |
|
|
permission_required = ( |
|
|
'materia.detail_proposicao_devolvida', |
|
|
RP_DETAIL, |
|
|
'materia.detail_proposicao_incorporada') |
|
|
'materia.detail_proposicao_enviada', |
|
|
|
|
|
'materia.detail_proposicao_devolvida', |
|
|
|
|
|
'materia.detail_proposicao_incorporada' |
|
|
|
|
|
) |
|
|
|
|
|
|
|
|
logger = logging.getLogger(__name__) |
|
|
logger = logging.getLogger(__name__) |
|
|
|
|
|
|
|
@ -785,7 +792,6 @@ class ProposicaoCrud(Crud): |
|
|
return context |
|
|
return context |
|
|
|
|
|
|
|
|
def get(self, request, *args, **kwargs): |
|
|
def get(self, request, *args, **kwargs): |
|
|
|
|
|
|
|
|
action = request.GET.get('action', '') |
|
|
action = request.GET.get('action', '') |
|
|
user = request.user |
|
|
user = request.user |
|
|
username = user.username |
|
|
username = user.username |
|
@ -802,10 +808,8 @@ class ProposicaoCrud(Crud): |
|
|
msg_error = _('Proposição já foi enviada e recebida.') |
|
|
msg_error = _('Proposição já foi enviada e recebida.') |
|
|
elif p.data_envio: |
|
|
elif p.data_envio: |
|
|
msg_error = _('Proposição já foi enviada.') |
|
|
msg_error = _('Proposição já foi enviada.') |
|
|
elif not p.texto_original and\ |
|
|
elif not p.texto_original and not p.texto_articulado.exists(): |
|
|
not p.texto_articulado.exists(): |
|
|
msg_error = _('Proposição não possui nenhum tipo de Texto associado.') |
|
|
msg_error = _('Proposição não possui nenhum tipo de ' |
|
|
|
|
|
'Texto associado.') |
|
|
|
|
|
else: |
|
|
else: |
|
|
if p.texto_articulado.exists(): |
|
|
if p.texto_articulado.exists(): |
|
|
ta = p.texto_articulado.first() |
|
|
ta = p.texto_articulado.first() |
|
@ -813,8 +817,7 @@ class ProposicaoCrud(Crud): |
|
|
ta.editing_locked = True |
|
|
ta.editing_locked = True |
|
|
ta.save() |
|
|
ta.save() |
|
|
|
|
|
|
|
|
receber_recibo = BaseAppConfig.attr( |
|
|
receber_recibo = BaseAppConfig.attr('receber_recibo_proposicao') |
|
|
'receber_recibo_proposicao') |
|
|
|
|
|
|
|
|
|
|
|
if not receber_recibo: |
|
|
if not receber_recibo: |
|
|
ta = p.texto_articulado.first() |
|
|
ta = p.texto_articulado.first() |
|
@ -824,45 +827,39 @@ class ProposicaoCrud(Crud): |
|
|
p.data_envio = timezone.now() |
|
|
p.data_envio = timezone.now() |
|
|
p.save() |
|
|
p.save() |
|
|
|
|
|
|
|
|
messages.success(request, _( |
|
|
messages.success(request, _('Proposição enviada com sucesso.')) |
|
|
'Proposição enviada com sucesso.')) |
|
|
|
|
|
try: |
|
|
try: |
|
|
self.logger.debug("user=" + username + ". Tentando obter número do objeto MateriaLegislativa com " |
|
|
self.logger.debug("User={}. Tentando obter número do objeto MateriaLegislativa " |
|
|
"atributos tipo={} e ano={}." |
|
|
"com atributos tipo={} e ano={}." |
|
|
.format(p.tipo.tipo_conteudo_related, p.ano)) |
|
|
.format(username, p.tipo.tipo_conteudo_related, p.ano)) |
|
|
|
|
|
|
|
|
if p.numero_materia_futuro: |
|
|
if p.numero_materia_futuro: |
|
|
numero = p.numero_materia_futuro |
|
|
numero = p.numero_materia_futuro |
|
|
else: |
|
|
else: |
|
|
numero = MateriaLegislativa.objects.filter(tipo=p.tipo.tipo_conteudo_related, |
|
|
numero = MateriaLegislativa.objects.filter(tipo=p.tipo.tipo_conteudo_related, |
|
|
ano=p.ano).last().numero + 1 |
|
|
ano=p.ano).last().numero + 1 |
|
|
messages.success(request, _( |
|
|
messages.success(request, _("{}: nº {} de {} <br>Atenção! Este número é apenas um provável " |
|
|
'%s : nº %s de %s <br>Atenção! Este número é apenas um provável ' |
|
|
"número que pode não corresponder com a realidade" |
|
|
'número que pode não corresponder com a realidade' |
|
|
.format(p.tipo, numero, p.ano))) |
|
|
% (p.tipo, numero, p.ano))) |
|
|
|
|
|
except ValueError as e: |
|
|
except ValueError as e: |
|
|
self.logger.error( |
|
|
self.logger.warning("User=" + username + ". " + str(e)) |
|
|
"user=" + username + "." + str(e)) |
|
|
|
|
|
pass |
|
|
pass |
|
|
except AttributeError as e: |
|
|
except AttributeError as e: |
|
|
self.logger.error( |
|
|
self.logger.warning("User=" + username + ". " + str(e)) |
|
|
"user=" + username + "." + str(e)) |
|
|
|
|
|
pass |
|
|
pass |
|
|
except TypeError as e: |
|
|
except TypeError as e: |
|
|
self.logger.error( |
|
|
self.logger.warning("User=" + username + ". " + str(e)) |
|
|
"user=" + username + "." + str(e)) |
|
|
|
|
|
pass |
|
|
pass |
|
|
|
|
|
|
|
|
elif action == 'return': |
|
|
elif action == 'return': |
|
|
if not p.data_envio: |
|
|
if not p.data_envio: |
|
|
self.logger.error( |
|
|
self.logger.warning("User={}. Proposição (numero={}) ainda não foi enviada." |
|
|
"user=" + username + ". Proposição (numero={}) ainda não foi enviada.".format(p.numero_proposicao)) |
|
|
.format(username, p.numero_proposicao)) |
|
|
msg_error = _('Proposição ainda não foi enviada.') |
|
|
msg_error = _('Proposição ainda não foi enviada.') |
|
|
elif p.data_recebimento: |
|
|
elif p.data_recebimento: |
|
|
self.logger.error("user=" + username + ". Proposição (numero={}) já foi recebida, não é " |
|
|
self.logger.warning("User={}. Proposição (numero={}) já foi recebida, " |
|
|
"possível retorná-la.".format(p.numero_proposicao)) |
|
|
"não é possível retorná-la.".format(username, p.numero_proposicao)) |
|
|
msg_error = _('Proposição já foi recebida, não é ' |
|
|
msg_error = _('Proposição já foi recebida, não é possível retorná-la.') |
|
|
'possível retorná-la.') |
|
|
|
|
|
else: |
|
|
else: |
|
|
p.data_envio = None |
|
|
p.data_envio = None |
|
|
p.save() |
|
|
p.save() |
|
@ -871,27 +868,24 @@ class ProposicaoCrud(Crud): |
|
|
ta.privacidade = STATUS_TA_PRIVATE |
|
|
ta.privacidade = STATUS_TA_PRIVATE |
|
|
ta.editing_locked = False |
|
|
ta.editing_locked = False |
|
|
ta.save() |
|
|
ta.save() |
|
|
self.logger.info( |
|
|
self.logger.info("User={}. Proposição (numero={}) Retornada com sucesso." |
|
|
"user=" + username + ". Proposição (numero={}) Retornada com sucesso.".format(p.numero_proposicao)) |
|
|
.format(username, p.numero_proposicao)) |
|
|
messages.success(request, _( |
|
|
messages.success(request, _('Proposição Retornada com sucesso.')) |
|
|
'Proposição Retornada com sucesso.')) |
|
|
|
|
|
|
|
|
|
|
|
if msg_error: |
|
|
if msg_error: |
|
|
messages.error(request, msg_error) |
|
|
messages.error(request, msg_error) |
|
|
|
|
|
|
|
|
# retornar redirecionando para limpar a variavel action |
|
|
# retornar redirecionando para limpar a variavel action |
|
|
return redirect(reverse('sapl.materia:proposicao_detail', |
|
|
return redirect(reverse('sapl.materia:proposicao_detail', kwargs={'pk': kwargs['pk']})) |
|
|
kwargs={'pk': kwargs['pk']})) |
|
|
|
|
|
|
|
|
|
|
|
def dispatch(self, request, *args, **kwargs): |
|
|
def dispatch(self, request, *args, **kwargs): |
|
|
username = request.user.username |
|
|
username = request.user.username |
|
|
try: |
|
|
try: |
|
|
self.logger.debug( |
|
|
self.logger.debug("User={}. Tentando obter objeto Proposicao com pk={}".format(username, kwargs['pk'])) |
|
|
"user=" + username + ". Tentando obter objeto Proposicao com pk={}".format(kwargs['pk'])) |
|
|
|
|
|
p = Proposicao.objects.get(id=kwargs['pk']) |
|
|
p = Proposicao.objects.get(id=kwargs['pk']) |
|
|
except Exception as e: |
|
|
except Exception as e: |
|
|
self.logger.error( |
|
|
self.logger.warning("User={}. Erro ao obter proposicao com pk={}. Retornando 404. {}" |
|
|
"user=" + username + ". Erro ao obter proposicao com pk={}. Retornando 404. ".format(kwargs['pk']) + str(e)) |
|
|
.format(username, kwargs['pk'], str(e))) |
|
|
raise Http404() |
|
|
raise Http404() |
|
|
|
|
|
|
|
|
if not self.has_permission(): |
|
|
if not self.has_permission(): |
|
@ -901,47 +895,38 @@ class ProposicaoCrud(Crud): |
|
|
if not p.data_envio and not p.data_devolucao: |
|
|
if not p.data_envio and not p.data_devolucao: |
|
|
raise Http404() |
|
|
raise Http404() |
|
|
|
|
|
|
|
|
if p.data_devolucao and not request.user.has_perm( |
|
|
if p.data_devolucao and not request.user.has_perm('materia.detail_proposicao_devolvida'): |
|
|
'materia.detail_proposicao_devolvida'): |
|
|
|
|
|
raise Http404() |
|
|
raise Http404() |
|
|
|
|
|
|
|
|
if p.data_envio and not p.data_recebimento\ |
|
|
if p.data_envio and not p.data_recebimento \ |
|
|
and not request.user.has_perm( |
|
|
and not request.user.has_perm('materia.detail_proposicao_enviada'): |
|
|
'materia.detail_proposicao_enviada'): |
|
|
|
|
|
raise Http404() |
|
|
raise Http404() |
|
|
|
|
|
|
|
|
if p.data_envio and p.data_recebimento\ |
|
|
if p.data_envio and p.data_recebimento \ |
|
|
and not request.user.has_perm( |
|
|
and not request.user.has_perm('materia.detail_proposicao_incorporada'): |
|
|
'materia.detail_proposicao_incorporada'): |
|
|
|
|
|
raise Http404() |
|
|
raise Http404() |
|
|
|
|
|
|
|
|
return super(PermissionRequiredMixin, self).dispatch( |
|
|
return super(PermissionRequiredMixin, self).dispatch(request, *args, **kwargs) |
|
|
request, *args, **kwargs) |
|
|
|
|
|
|
|
|
|
|
|
class DeleteView(BaseLocalMixin, Crud.DeleteView): |
|
|
class DeleteView(BaseLocalMixin, Crud.DeleteView): |
|
|
|
|
|
|
|
|
logger = logging.getLogger(__name__) |
|
|
logger = logging.getLogger(__name__) |
|
|
|
|
|
|
|
|
def _action_is_valid(self, request, *args, **kwargs): |
|
|
def _action_is_valid(self, request, *args, **kwargs): |
|
|
proposicao = Proposicao.objects.filter( |
|
|
proposicao = Proposicao.objects.filter(id=kwargs['pk']).values_list('data_envio', 'data_recebimento') |
|
|
id=kwargs['pk']).values_list( |
|
|
|
|
|
'data_envio', 'data_recebimento') |
|
|
|
|
|
|
|
|
|
|
|
username = request.user.username |
|
|
username = request.user.username |
|
|
|
|
|
|
|
|
if proposicao: |
|
|
if proposicao: |
|
|
if proposicao[0][0] and proposicao[0][1]: |
|
|
if proposicao[0][0] and proposicao[0][1]: |
|
|
self.logger.error("user=" + username + ". Proposição (id={}) já foi enviada e recebida." |
|
|
self.logger.warning("User={}. Proposição (id={}) já foi enviada e recebida." |
|
|
"Não pode mais ser excluida.".format(kwargs['pk'])) |
|
|
"Não pode mais ser excluida.".format(username, kwargs['pk'])) |
|
|
msg = _('Proposição já foi enviada e recebida.' |
|
|
msg = _('Proposição já foi enviada e recebida. Não pode mais ser excluida.') |
|
|
'Não pode mais ser excluida.') |
|
|
|
|
|
elif proposicao[0][0] and not proposicao[0][1]: |
|
|
elif proposicao[0][0] and not proposicao[0][1]: |
|
|
self.logger.error("user=" + username + ". Proposição (id={}) já foi enviada mas ainda não recebida " |
|
|
self.logger.warning("""\ |
|
|
"pelo protocolo. Use a opção Recuperar Proposição " |
|
|
User={}. Proposição (id={}) já foi enviada, mas ainda não recebida pelo protocolo. \ |
|
|
"para depois excluí-la.".format(kwargs['pk'])) |
|
|
Use a opção Recuperar Proposição para depois excluí-la.""".format(username, kwargs['pk'])) |
|
|
msg = _('Proposição já foi enviada mas ainda não recebida ' |
|
|
msg = _("Proposição já foi enviada mas ainda não recebida pelo protocolo. " |
|
|
'pelo protocolo. Use a opção Recuperar Proposição ' |
|
|
"Use a opção Recuperar Proposição para depois excluí-la.") |
|
|
'para depois excluí-la.') |
|
|
|
|
|
|
|
|
|
|
|
if proposicao[0][0] or proposicao[0][1]: |
|
|
if proposicao[0][0] or proposicao[0][1]: |
|
|
messages.error(request, msg) |
|
|
messages.error(request, msg) |
|
@ -949,20 +934,18 @@ class ProposicaoCrud(Crud): |
|
|
return True |
|
|
return True |
|
|
|
|
|
|
|
|
class UpdateView(BaseLocalMixin, Crud.UpdateView): |
|
|
class UpdateView(BaseLocalMixin, Crud.UpdateView): |
|
|
|
|
|
|
|
|
logger = logging.getLogger(__name__) |
|
|
logger = logging.getLogger(__name__) |
|
|
form_class = ProposicaoForm |
|
|
form_class = ProposicaoForm |
|
|
|
|
|
|
|
|
def form_valid(self, form): |
|
|
def form_valid(self, form): |
|
|
tz = timezone.get_current_timezone() |
|
|
tz = timezone.get_current_timezone() |
|
|
|
|
|
|
|
|
objeto_antigo = Proposicao.objects.get( |
|
|
objeto_antigo = Proposicao.objects.get(pk=self.kwargs['pk']) |
|
|
pk=self.kwargs['pk'] |
|
|
|
|
|
) |
|
|
|
|
|
dict_objeto_antigo = objeto_antigo.__dict__ |
|
|
dict_objeto_antigo = objeto_antigo.__dict__ |
|
|
|
|
|
|
|
|
tipo_texto = self.request.POST.get('tipo_texto', '') |
|
|
tipo_texto = self.request.POST.get('tipo_texto', '') |
|
|
if tipo_texto=='D' and objeto_antigo.texto_articulado.exists() or tipo_texto=='T' and not objeto_antigo.texto_articulado.exists(): |
|
|
if tipo_texto == 'D' and objeto_antigo.texto_articulado.exists()\ |
|
|
|
|
|
or tipo_texto == 'T' and not objeto_antigo.texto_articulado.exists(): |
|
|
self.object.user = self.request.user |
|
|
self.object.user = self.request.user |
|
|
self.object.ip = get_client_ip(self.request) |
|
|
self.object.ip = get_client_ip(self.request) |
|
|
self.object.ultima_edicao = tz.localize(datetime.now()) |
|
|
self.object.ultima_edicao = tz.localize(datetime.now()) |
|
@ -972,7 +955,10 @@ class ProposicaoCrud(Crud): |
|
|
dict_objeto_novo = self.object.__dict__ |
|
|
dict_objeto_novo = self.object.__dict__ |
|
|
|
|
|
|
|
|
atributos = [ |
|
|
atributos = [ |
|
|
'tipo_id', 'descricao', 'observacao', 'texto_original', |
|
|
'tipo_id', |
|
|
|
|
|
'descricao', |
|
|
|
|
|
'observacao', |
|
|
|
|
|
'texto_original', |
|
|
'materia_de_vinculo_id' |
|
|
'materia_de_vinculo_id' |
|
|
] |
|
|
] |
|
|
|
|
|
|
|
@ -987,27 +973,22 @@ class ProposicaoCrud(Crud): |
|
|
return super().form_valid(form) |
|
|
return super().form_valid(form) |
|
|
|
|
|
|
|
|
def _action_is_valid(self, request, *args, **kwargs): |
|
|
def _action_is_valid(self, request, *args, **kwargs): |
|
|
|
|
|
proposicao = Proposicao.objects.filter(id=kwargs['pk']).values_list('data_envio', 'data_recebimento') |
|
|
proposicao = Proposicao.objects.filter( |
|
|
|
|
|
id=kwargs['pk']).values_list( |
|
|
|
|
|
'data_envio', 'data_recebimento') |
|
|
|
|
|
|
|
|
|
|
|
username = request.user.username |
|
|
username = request.user.username |
|
|
|
|
|
|
|
|
if proposicao: |
|
|
if proposicao: |
|
|
msg = '' |
|
|
msg = '' |
|
|
if proposicao[0][0] and proposicao[0][1]: |
|
|
if proposicao[0][0] and proposicao[0][1]: |
|
|
self.logger.error('user=' + username + '. Proposição (id={}) já foi enviada e recebida.' |
|
|
self.logger.warning('User={}. Proposição (id={}) já foi enviada e recebida. ' |
|
|
'Não pode mais ser editada'.format(kwargs['pk'])) |
|
|
'Não pode mais ser editada'.format(username, kwargs['pk'])) |
|
|
msg = _('Proposição já foi enviada e recebida.' |
|
|
msg = _('Proposição já foi enviada e recebida. Não pode mais ser editada') |
|
|
'Não pode mais ser editada') |
|
|
|
|
|
elif proposicao[0][0] and not proposicao[0][1]: |
|
|
elif proposicao[0][0] and not proposicao[0][1]: |
|
|
self.logger.error('user=' + username + '. Proposição (id={}) já foi enviada mas ainda não recebida ' |
|
|
self.logger.warning("""\ |
|
|
'pelo protocolo. Use a opção Recuperar Proposição ' |
|
|
User={}. Proposição (id={}) já foi enviada, mas ainda não recebida pelo protocolo. \ |
|
|
'para voltar para edição.'.format(kwargs['pk'])) |
|
|
Use a opção Recuperar Proposição para voltar para edição.""".format(username, kwargs['pk'])) |
|
|
msg = _('Proposição já foi enviada mas ainda não recebida ' |
|
|
msg = _("Proposição já foi enviada, mas ainda não recebida pelo protocolo. " |
|
|
'pelo protocolo. Use a opção Recuperar Proposição ' |
|
|
"Use a opção Recuperar Proposição para voltar para edição.") |
|
|
'para voltar para edição.') |
|
|
|
|
|
|
|
|
|
|
|
if proposicao[0][0] or proposicao[0][1]: |
|
|
if proposicao[0][0] or proposicao[0][1]: |
|
|
messages.error(request, msg) |
|
|
messages.error(request, msg) |
|
@ -1015,22 +996,17 @@ class ProposicaoCrud(Crud): |
|
|
return True |
|
|
return True |
|
|
|
|
|
|
|
|
def get_success_url(self): |
|
|
def get_success_url(self): |
|
|
|
|
|
|
|
|
tipo_texto = self.request.POST.get('tipo_texto', '') |
|
|
tipo_texto = self.request.POST.get('tipo_texto', '') |
|
|
username = self.request.user.username |
|
|
username = self.request.user.username |
|
|
|
|
|
|
|
|
if tipo_texto == 'T': |
|
|
if tipo_texto == 'T': |
|
|
messages.info(self.request, |
|
|
messages.info(self.request, _("""\ |
|
|
_('Sempre que uma Proposição é inclusa ou ' |
|
|
Sempre que uma Proposição é inclusa ou alterada e a opção "Texto Articulado " for marcada, \ |
|
|
'alterada e a opção "Texto Articulado " for ' |
|
|
você será redirecionado para a edição do Texto Eletrônico.""")) |
|
|
'marcada, você será redirecionado para a ' |
|
|
self.logger.debug("""\ |
|
|
'edição do Texto Eletrônico.')) |
|
|
User={}. Sempre que uma Proposição é inclusa ou alterada e a opção "Texto Articulado" for marcada, \ |
|
|
self.logger.debug('user=' + username + '. Sempre que uma Proposição é inclusa ou ' |
|
|
você será redirecionado para a edição do Texto Eletrônico.""".format(username)) |
|
|
'alterada e a opção "Texto Articulado " for ' |
|
|
return reverse('sapl.materia:proposicao_ta', kwargs={'pk': self.object.pk}) |
|
|
'marcada, você será redirecionado para a ' |
|
|
|
|
|
'edição do Texto Eletrônico.') |
|
|
|
|
|
return reverse('sapl.materia:proposicao_ta', |
|
|
|
|
|
kwargs={'pk': self.object.pk}) |
|
|
|
|
|
else: |
|
|
else: |
|
|
return Crud.UpdateView.get_success_url(self) |
|
|
return Crud.UpdateView.get_success_url(self) |
|
|
|
|
|
|
|
@ -1061,43 +1037,38 @@ class ProposicaoCrud(Crud): |
|
|
username = self.request.user.username |
|
|
username = self.request.user.username |
|
|
|
|
|
|
|
|
if tipo_texto == 'T': |
|
|
if tipo_texto == 'T': |
|
|
messages.info(self.request, |
|
|
messages.info(self.request, _("""\ |
|
|
_('Sempre que uma Proposição é inclusa ou ' |
|
|
Sempre que uma Proposição é inclusa ou alterada e a opção "Texto Articulado" for marcada, \ |
|
|
'alterada e a opção "Texto Articulado " for ' |
|
|
você será redirecionado para o Texto Eletrônico. \ |
|
|
'marcada, você será redirecionado para o ' |
|
|
Use a opção "Editar Texto" para construir seu texto.""")) |
|
|
'Texto Eletrônico. Use a opção "Editar Texto" ' |
|
|
self.logger.debug("""\ |
|
|
'para construir seu texto.')) |
|
|
User={}. Sempre que uma Proposição é inclusa ou alterada e a opção "Texto Articulado" for marcada, \ |
|
|
self.logger.debug('user=' + username + '. Sempre que uma Proposição é inclusa ou ' |
|
|
você será redirecionado para o Texto Eletrônico. \ |
|
|
'alterada e a opção "Texto Articulado " for ' |
|
|
Use a opção "Editar Texto" para construir seu texto.""".format(username)) |
|
|
'marcada, você será redirecionado para o ' |
|
|
return reverse('sapl.materia:proposicao_ta', kwargs={'pk': self.object.pk}) |
|
|
'Texto Eletrônico. Use a opção "Editar Texto" ' |
|
|
|
|
|
'para construir seu texto.') |
|
|
|
|
|
return reverse('sapl.materia:proposicao_ta', |
|
|
|
|
|
kwargs={'pk': self.object.pk}) |
|
|
|
|
|
else: |
|
|
else: |
|
|
return Crud.CreateView.get_success_url(self) |
|
|
return Crud.CreateView.get_success_url(self) |
|
|
|
|
|
|
|
|
class ListView(Crud.ListView): |
|
|
class ListView(Crud.ListView): |
|
|
ordering = ['-data_envio', 'descricao'] |
|
|
ordering = [ |
|
|
|
|
|
'-data_envio', |
|
|
|
|
|
'descricao' |
|
|
|
|
|
] |
|
|
|
|
|
|
|
|
def get_rows(self, object_list): |
|
|
def get_rows(self, object_list): |
|
|
|
|
|
|
|
|
for obj in object_list: |
|
|
for obj in object_list: |
|
|
if obj.data_recebimento is None: |
|
|
if obj.data_recebimento is None: |
|
|
obj.data_recebimento = 'Não recebida'\ |
|
|
obj.data_recebimento = 'Não recebida' if obj.data_envio else 'Não enviada' |
|
|
if obj.data_envio else 'Não enviada' |
|
|
|
|
|
else: |
|
|
else: |
|
|
obj.data_recebimento = timezone.localtime( |
|
|
obj.data_recebimento = timezone.localtime(obj.data_recebimento) |
|
|
obj.data_recebimento) |
|
|
obj.data_recebimento = formats.date_format(obj.data_recebimento, "DATETIME_FORMAT") |
|
|
obj.data_recebimento = formats.date_format( |
|
|
|
|
|
obj.data_recebimento, "DATETIME_FORMAT") |
|
|
|
|
|
if obj.data_envio is None: |
|
|
if obj.data_envio is None: |
|
|
obj.data_envio = 'Em elaboração...' |
|
|
obj.data_envio = 'Em elaboração...' |
|
|
else: |
|
|
else: |
|
|
|
|
|
|
|
|
obj.data_envio = timezone.localtime(obj.data_envio) |
|
|
obj.data_envio = timezone.localtime(obj.data_envio) |
|
|
obj.data_envio = formats.date_format( |
|
|
obj.data_envio = formats.date_format(obj.data_envio, "DATETIME_FORMAT") |
|
|
obj.data_envio, "DATETIME_FORMAT") |
|
|
|
|
|
|
|
|
|
|
|
return [self._as_row(obj) for obj in object_list] |
|
|
return [self._as_row(obj) for obj in object_list] |
|
|
|
|
|
|
|
@ -2757,11 +2728,11 @@ def create_zip_docacessorios(materia): |
|
|
|
|
|
|
|
|
def get_zip_docacessorios(request, pk): |
|
|
def get_zip_docacessorios(request, pk): |
|
|
logger = logging.getLogger(__name__) |
|
|
logger = logging.getLogger(__name__) |
|
|
username = request.user.username |
|
|
username = 'Usuário anônimo' if request.user.is_anonymous else request.user.username |
|
|
materia = get_object_or_404(MateriaLegislativa, pk=pk) |
|
|
materia = get_object_or_404(MateriaLegislativa, pk=pk) |
|
|
try: |
|
|
try: |
|
|
external_name, zipfilename = create_zip_docacessorios(materia) |
|
|
external_name, zipfilename = create_zip_docacessorios(materia) |
|
|
logger.info("user= {}. Gerou o zip compilado de documento acessorios") |
|
|
logger.info("user= {}. Gerou o zip compilado de documento acessorios".format(username)) |
|
|
except FileNotFoundError: |
|
|
except FileNotFoundError: |
|
|
logger.error("user= {}.Não há arquivos cadastrados".format(username)) |
|
|
logger.error("user= {}.Não há arquivos cadastrados".format(username)) |
|
|
msg=_('Não há arquivos cadastrados nesses documentos acessórios.') |
|
|
msg=_('Não há arquivos cadastrados nesses documentos acessórios.') |
|
@ -2822,10 +2793,10 @@ def create_pdf_docacessorios(materia): |
|
|
def get_pdf_docacessorios(request, pk): |
|
|
def get_pdf_docacessorios(request, pk): |
|
|
materia = get_object_or_404(MateriaLegislativa, pk=pk) |
|
|
materia = get_object_or_404(MateriaLegislativa, pk=pk) |
|
|
logger = logging.getLogger(__name__) |
|
|
logger = logging.getLogger(__name__) |
|
|
username = request.user.username |
|
|
username = 'Usuário anônimo' if request.user.is_anonymous else request.user.username |
|
|
try: |
|
|
try: |
|
|
external_name, pdffilename = create_pdf_docacessorios(materia) |
|
|
external_name, pdffilename = create_pdf_docacessorios(materia) |
|
|
logger.info("user= {}. Gerou o pdf compilado de documento acessorios") |
|
|
logger.info("user= {}. Gerou o pdf compilado de documento acessorios".format(username)) |
|
|
except FileNotFoundError: |
|
|
except FileNotFoundError: |
|
|
logger.error("user= {}.Não há arquivos cadastrados".format(username)) |
|
|
logger.error("user= {}.Não há arquivos cadastrados".format(username)) |
|
|
msg=_('Não há arquivos cadastrados nesses documentos acessórios.') |
|
|
msg=_('Não há arquivos cadastrados nesses documentos acessórios.') |
|
|