Pegar id do modal e passar para url

366 views
Skip to first unread message

Bianca Coppi

unread,
Oct 31, 2017, 8:04:09 AM10/31/17
to Django Brasil
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>




Reply all
Reply to author
Forward
0 new messages