Last active
September 3, 2015 01:53
-
-
Save fandrefh/7fd308bf2626c1576ac9 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#forms.py | |
class AgendaForm(forms.ModelForm): | |
paciente = forms.ModelChoiceField(queryset=Paciente.objects.all(), widget=forms.TextInput()) | |
class Meta: | |
model = Agenda | |
fields = ('paciente', 'medico', 'data_consulta', 'horario', 'observacoes') | |
#views.py | |
def add_agenda(request): | |
if request.method == 'POST': | |
print(request.POST) | |
form_agenda = AgendaForm(request.POST) | |
if form_agenda.is_valid(): | |
form_agenda.save() | |
return redirect('paciente:listaagenda') | |
else: | |
print(form_agenda.errors) | |
else: | |
form_agenda = AgendaForm() | |
return render(request, 'paciente/add_agenda.html', {'form_agenda': form_agenda}) | |
#template | |
{% extends "base.html" %} | |
{% load widget_tweaks %} | |
{% block row %} | |
<div class="form-group"> | |
<div class="col-sm-offset-2 col-sm-10"> | |
<h4>Agendamento de Consultas</h4> | |
</div> | |
</div><br><br> | |
<form class="form-horizontal" action="." method="POST"> | |
{% csrf_token %} | |
<div class="form-group"> | |
<label for="{{ form_agenda.paciente.id_for_label }}" class="col-sm-2 control-label">Paciente</label> | |
<div class="col-sm-10"> | |
{{ form_agenda.paciente|attr:"autofocus"|add_class:"form-control" }} | |
</div> | |
</div> | |
{% if form_agenda.paciente.errors %} | |
<div class="alert alert-warning col-sm-offset-2 col-sm-10" role="alert"> | |
<p>{{ form_agenda.paciente.errors.as_text }}</p> | |
</div> | |
{% endif %} | |
<div class="form-group"> | |
<label for="{{ form_agenda.medico.id_for_label }}" class="col-sm-2 control-label">Médico</label> | |
<div class="col-sm-10"> | |
{{ form_agenda.medico|add_class:"form-control" }} | |
</div> | |
</div> | |
{% if form_agenda.medico.errors %} | |
<div class="alert alert-warning col-sm-offset-2 col-sm-10" role="alert"> | |
<p>{{ form_agenda.medico.errors.as_text }}</p> | |
</div> | |
{% endif %} | |
<div class="form-group"> | |
<label for="{{ form_agenda.data_consulta.id_for_label }}" class="col-sm-2 control-label">Data da Consulta</label> | |
<div class="col-sm-10"> | |
{{ form_agenda.data_consulta|add_class:"form-control" }} | |
</div> | |
</div> | |
{% if form_agenda.data_consulta.errors %} | |
<div class="alert alert-warning col-sm-offset-2 col-sm-10" role="alert"> | |
<p>{{ form_agenda.data_consulta.errors.as_text }}</p> | |
</div> | |
{% endif %} | |
<div class="form-group"> | |
<label for="{{ form_agenda.horario.id_for_label }}" class="col-sm-2 control-label">Horário da Consulta</label> | |
<div class="col-sm-10"> | |
{{ form_agenda.horario|add_class:"form-control" }} | |
</div> | |
</div> | |
{% if form_agenda.horario.errors %} | |
<div class="alert alert-warning col-sm-offset-2 col-sm-10" role="alert"> | |
<p>{{ form_agenda.horario.errors.as_text }}</p> | |
</div> | |
{% endif %} | |
<div class="form-group"> | |
<label for="{{ form_agenda.observacoes.id_for_label }}" class="col-sm-2 control-label">Observações</label> | |
<div class="col-sm-10"> | |
{{ form_agenda.observacoes|add_class:"form-control" }} | |
</div> | |
</div> | |
{% if form_agenda.observacoes.errors %} | |
<div class="alert alert-warning col-sm-offset-2 col-sm-10" role="alert"> | |
<p>{{ form_agenda.observacoes.errors.as_text }}</p> | |
</div> | |
{% endif %} | |
<div class="form-group"> | |
<div class="col-sm-offset-2 col-sm-10"> | |
<input type="submit" class="btn btn-primary" value="Salvar"> | |
<a href="{% url 'paciente:listapacientes' %}" class="btn btn-warning">Cancelar</a> | |
<!--<input type="submit" class="btn btn-primary" value="Salvar">--> | |
</div> | |
</div> | |
</form> | |
{% endblock row %} | |
#views ajax | |
def get_pacientes(request): | |
if request.GET: | |
q = request.GET.get('term', '') | |
pacientes = Paciente.objects.filter(nome__icontains = q)[:20] | |
results = [] | |
for paciente in pacientes: | |
paciente_json = {} | |
paciente_json['id'] = paciente.id | |
paciente_json['label'] = paciente.nome | |
paciente_json['value'] = paciente.nome | |
results.append(paciente_json) | |
data = json.dumps(results) | |
else: | |
data = 'fail' | |
mimetype = 'application/json' | |
return HttpResponse(data, mimetype) | |
#jqueryui ajax | |
//Ajax para o agendamento de cliente. | |
$(document).ready(function() { | |
$("#id_paciente").autocomplete({ | |
source: "/consultorio/get-pacientes/", | |
minLength: 2, | |
}); | |
}); | |
#Mensagem de erro | |
* Faça uma escolha válida. Sua escolha não é uma das disponíveis. | |
#O erro acontece na hora de gravar nno banco. |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment