mirror of https://github.com/interlegis/sigi.git
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
49 lines
1.7 KiB
49 lines
1.7 KiB
from __future__ import absolute_import
|
|
|
|
import random
|
|
|
|
from django.contrib.auth.mixins import LoginRequiredMixin
|
|
from django.core.urlresolvers import reverse
|
|
|
|
import sigi.apps.crud.base
|
|
from sigi.apps.crud.base import (Crud, CrudBaseMixin, CrudCreateView,
|
|
CrudListView, CrudUpdateView)
|
|
from sigi.apps.usuarios.models import Usuario
|
|
|
|
from .forms import SolicitacaoForm
|
|
from .models import Solicitacao
|
|
from sigi.context_processors import recupera_usuario
|
|
|
|
|
|
class SolicitacaoCrud(LoginRequiredMixin, Crud):
|
|
model = Solicitacao
|
|
help_path = u''
|
|
|
|
class ListView(LoginRequiredMixin, CrudListView):
|
|
|
|
def get_rows(self, object_list):
|
|
object_list = Solicitacao.objects.filter(
|
|
usuario=recupera_usuario(self.request))
|
|
return [self._as_row(obj) for obj in object_list]
|
|
|
|
class CreateView(LoginRequiredMixin, CrudCreateView):
|
|
form_class = SolicitacaoForm
|
|
|
|
def get_initial(self):
|
|
try:
|
|
usuario = Usuario.objects.get(user=self.request.user)
|
|
self.initial[u'usuario'] = usuario
|
|
self.initial[u'codigo'] = random.randint(0, 65500)
|
|
self.initial[u'email_contato'] = usuario.email
|
|
self.initial[u'telefone_contato'] = usuario.primeiro_telefone
|
|
self.initial[u'casa_legislativa'] = usuario.casa_legislativa
|
|
except Usuario.DoesNotExist:
|
|
pass
|
|
return self.initial.copy()
|
|
|
|
def get_success_url(self):
|
|
return reverse(u'solicitacoes:solicitacao_list')
|
|
|
|
class BaseMixin(CrudBaseMixin):
|
|
list_field_names = [u'osticket', u'sistema',
|
|
u'titulo', u'data_criacao']
|
|
|