E ai galera,
Seguinte:
Tenho uma lista de usuários e ao clicar no button autorizar, abre um modal pedindo confirmação da autorização.
Nesse modal tenho um campo hidden que já pega o id do usuário que cliquei e guarda nesse input escondido.
Preciso pegar esse id do input e quando clicar em confirmar, pensei em 2 opções:
Ou conseguir salvar por ali mesmo, utilizando a mesma view (usuarios_autorizar)
Ou redirecionar para a página de autorizar passando esse id.(autorizar)
Tentei pelos dois modos mas sem sucesso.
view.py
def usuarios_autorizar(request):
autorizar = AutorizarForm(request.POST)
if request.method == 'POST' and 'modal2salvar' in request.POST or None:
print("ae")
autorizar = AutorizarForm(request.POST)
if autorizar.is_valid():
usuario = autorizar.cleaned_data.get("user")
usuario.is_staff = True
usuario.save()
print("salvou")
pessoa = usuario.id
# historico
historico = Historico_Perfil.objects.create(
acao="Autorizado",
data=datetime.now(),
responsavel=Perfil.objects.get(pk=request.user.id),
usuario=Perfil.objects.get(id=pessoa),
)
print(historico.responsavel)
else:
print("Nao deu")
usuarios = Perfil.objects.filter(grupos__in=grupo_responsavel, is_staff=False)
context = {'lista_usuarios': usuarios,
'autorizar': AutorizarForm,
}
return render(request, 'usuarios_autorizar.html', context)
def autorizar(request, item_id):
resp = Perfil.objects.get(pk=request.user.id)
user = Perfil.objects.get(id=item_id)
if Grupo.objects.filter(responsavel=resp.id, grupo="Suporte"):
user.autorizado = True
user.save()
historico = Historico_Perfil.objects.create(
data=datetime.now(),
acao="Autorizado para Conta Nis",
responsavel=Perfil.objects.get(pk=request.user.id),
usuario=Perfil.objects.get(id=item_id), )
else:
# autorizar passando para staff
user.is_staff = True
user.save()
# historico
historico = Historico_Perfil.objects.create(
data = datetime.now(),
acao = "Autorizado",
responsavel = Perfil.objects.get(pk=request.user.id),
usuario = Perfil.objects.get(id=item_id),)
return redirect("/cadastro/usuarios_autorizar")
url(r'^usuarios_autorizar/$', views.usuarios_autorizar, name='usuarios_autorizar'),
url(r'^autorizar/(?P<item_id>[0-9]+)$', views.autorizar, name='autorizar'),
template(autorizar)
<table class="striped" id="cadastrados">
<thead>
<tr>
<th>Nome</th>
<th>Telefone</th>
<th>Ramal</th>
<th>Grupo</th>
<th>Autorizar</th>
<th>Negar</th>
</tr>
</thead>
{% for item in lista_usuarios %}
<tr>
<td>{{ item.first_name }}</td>
<td>{{ item.telefone }}</td>
<td>{{ item.ramal }}</td>
<td>{{ item.grupos }}</td>
<td id="autorizado">
<button data-target="modal2" type = "button" value="{{item.id}}" name = {{item.first_name}} class = " buttonautorizar btn waves-effect waves-light blue" data-index="{{item.id}}" onclick="$('#modal2').modal('open');" >
<i class="large material-icons">mode_edit</i></button>
</a>
</td>
<td>
<button data-target="modal1" type = "button" value="{{item.id}}" class = " buttonnegar btn waves-effect waves-light blue" data-index="{{item.id}}" onclick="$('#modal1').modal('open');" >
<i class="large material-icons">clear</i>
</button>
</td>
</tr>
</li>
{% endfor %}
</table>
<div id="modal2" class="autorizar modal">
<div class="modal-content">
<h4>Autorização</h4>
<p> Tem certeza que deseja autorizar <span id="user"></span>?</p>
{{ autorizar.as_p }}
<button type="submit" name="modal2salvar" class="btn btn-primary btn-lg blue">Salvar</button>
<button name="cancelar" onclick="location.href='';" class="btn btn-primary btn-lg blue">Cancelar</button>
<a href="{% url 'cadastro:usuarios' 'item_id' %}">Teste Autorizar redirecionando</a>
</div>
<div class="modal-footer">
</div>
</div>
<script>
$(document).ready(function(){
$(".autorizar").each(function() {
$(".buttonautorizar").click(function() {
var nome = $(this).attr('name');
user.innerHTML = nome;
var id2 = $(this).val();
$("#id_user").val(id2);
$('.autorizar').modal({
dismissible: true, // Modal can be dismissed by clicking outside of the modal
opacity: .100, // Opacity of modal background
inDuration: 300, // Transition in duration
outDuration: 200, // Transition out duration
startingTop: '4%', // Starting top style attribute
endingTop: '10%', // Ending top style attribute
ready: function(modal, trigger) {
console.log(modal, trigger);
},
complete: function() { } // Callback for Modal close
}
);
});
});
</script>