Skip to content
Snippets Groups Projects
Commit d4bfbce6 authored by Valentin Groues's avatar Valentin Groues :eyes:
Browse files

add contact attempts feature - #34

parent def4a6be
No related branches found
No related tags found
1 merge request!32Resolve "Contact attempts"
Pipeline #
# coding=utf-8
from datetime import datetime
from django.contrib.auth.models import User
from django.test import Client
from django.test import TestCase
from django.urls import reverse
__author__ = 'Valentin Grouès'
from . import LoggedInTestCase
__author__ = 'Valentin Grouès'
class TestStatisticsView(TestCase):
def setUp(self):
self.client = Client()
username = 'piotr'
password = 'top_secret'
self.user = User.objects.create_user(
username=username, email='jacob@bla', password=password)
self.client.login(username=username, password=password)
class TestStatisticsView(LoggedInTestCase):
def test_statistics_request(self):
url = reverse('web.views.statistics')
response = self.client.get(url)
......
import datetime
from django.test import Client
from django.test import TestCase
from django.urls import reverse
from functions import \
create_appointment, \
create_appointment_type, \
create_subject, \
create_visit, \
create_user
from functions import create_subject, create_visit, create_appointment, create_appointment_type
from web.forms import VisitDetailForm, VisitAddForm
from web.models import Subject, Visit
from web.models import Visit
from web.views.notifications import get_today_midnight_date
from . import LoggedInTestCase
class VisitViewTests(TestCase):
def setUp(self):
username = 'piotr'
password = 'top_secret'
self.client = Client()
self.user = create_user(username, password)
self.client.login(username=username, password=password)
class VisitViewTests(LoggedInTestCase):
def test_visit_details_request(self):
visit = create_visit()
create_appointment(visit)
......@@ -47,7 +33,7 @@ class VisitViewTests(TestCase):
response = self.client.post(
reverse('web.views.visit_details', kwargs={'id': visit.id}), data=form_data)
self.assertEqual(response.status_code, 200)
self.assertFalse("error" in response.content)
self.assertNotContains(response, "error")
def test_render_add_visit(self):
subject = create_subject()
......@@ -133,6 +119,5 @@ class VisitViewTests(TestCase):
visit = create_visit()
visit.datetime_begin = get_today_midnight_date() + datetime.timedelta(days=-10)
visit.save()
response = self.client.get(reverse("web.views.unfinished_visits"))
self.assertEqual(response.status_code, 200)
......@@ -20,6 +20,11 @@ from django.conf.urls import url
from web import views
urlpatterns = [
####################
# APPOINTMENTS #
####################
url(r'^appointments$', views.appointment.appointments, name='web.views.appointments'),
url(r'^appointments/unfinished$', views.appointment.unfinished_appointments,
name='web.views.unfinished_appointments'),
......@@ -29,6 +34,10 @@ urlpatterns = [
url(r'^appointments/add/general$', views.appointment.appointment_add, name='web.views.appointment_add_general'),
url(r'^appointments/edit/(?P<id>\d+)$', views.appointment.appointment_edit, name='web.views.appointment_edit'),
####################
# VISITS #
####################
url(r'^visits$', views.visit.visits, name='web.views.visits'),
url(r'^visits/exceeded$', views.visit.exceeded_visits, name='web.views.exceeded_visits'),
url(r'^visits/unfinished$', views.visit.unfinished_visits, name='web.views.unfinished_visits'),
......@@ -43,6 +52,10 @@ urlpatterns = [
url(r'^visits/add/(?P<subject_id>\d+)$', views.visit.visit_add, name='web.views.visit_add'),
url(r'^visit/mark/(?P<id>\d+)/(?P<as_what>[A-z]+)$', views.visit.visit_mark, name='web.views.visit_mark'),
####################
# SUBJECTS #
####################
url(r'^subjects$', views.subject.subjects, name='web.views.subjects'),
url(r'^subjects/no_visit$', views.subject.subject_no_visits, name='web.views.subject_no_visits'),
url(r'^subjects/equire_contact$', views.subject.subject_require_contact, name='web.views.subject_require_contact'),
......@@ -51,6 +64,16 @@ urlpatterns = [
name='web.views.subject_visit_details'),
url(r'^subjects/edit/(?P<id>\d+)$', views.subject.subject_edit, name='web.views.subject_edit'),
####################
# CONTACTS #
####################
url(r'^subjects/(?P<subject_id>\d+)/contacts/add$', views.contact_attempt.contact_add, name='web.views.contact_add'),
####################
# DOCTORS #
####################
url(r'^doctors$', views.doctor.doctors, name='web.views.doctors'),
url(r'^doctors/add$', views.doctor.doctor_add, name='web.views.doctor_add'),
url(r'^doctors/details/(?P<doctor_id>\d+)$', views.doctor.doctor_details, name='web.views.doctor_details'),
......@@ -61,6 +84,10 @@ urlpatterns = [
views.doctor.doctor_availability_delete,
name='web.views.doctor_availability_delete'),
####################
# EQUIPMENT #
####################
url(r'^equipment_and_rooms$', views.equipment.equipment_and_rooms, name='web.views.equipment_and_rooms'),
url(r'^equipment_and_rooms/eqdef$', views.equipment.equipment_def, name='web.views.equipment_def'),
url(r'^equipment_and_rooms/kit_requests$', views.kit.kit_requests, name='web.views.kit_requests'),
......@@ -69,12 +96,29 @@ urlpatterns = [
url(r'^equipment_and_rooms/kit_requests/(?P<start_date>[\w-]+)/(?P<end_date>[\w-]+)/$',
views.kit.kit_requests_send_mail, name='web.views.kit_requests_send_mail'),
####################
# MAIL #
####################
url(r'^mail_templates$', views.mails.mail_templates, name='web.views.mail_templates'),
####################
# STATISTICS #
####################
url(r'^statistics$', views.statistics.statistics, name='web.views.statistics'),
####################
# EXPORT #
####################
url(r'^export$', views.export.export, name='web.views.export'),
url(r'^export/(?P<type>[A-z]+)$', views.export.export_to_csv2, name='web.views.export_to_csv2'),
####################
# AUTH #
####################
url(r'^login$', views.auth.login, name='web.views.login'),
url(r'^logout$', views.auth.logout, name='web.views.logout'),
......
......@@ -60,3 +60,4 @@ import kit
import mails
import statistics
import export
import contact_attempt
from django.shortcuts import redirect, get_object_or_404
from . import wrap_response
from ..forms import ContactAttemptForm
from ..models import Subject
def contact_add(request, subject_id):
subject = get_object_or_404(Subject, id=subject_id)
if request.method == 'POST':
form = ContactAttemptForm(request.POST, user=request.user, subject=subject)
form.instance.subject_id = subject_id
if form.is_valid():
form.save()
return redirect('web.views.subject_edit', id=subject_id)
else:
form = ContactAttemptForm(user=request.user, subject=subject)
return wrap_response(request, 'contact_attempt/add.html',
{'form': form, 'subject_id': subject_id})
......@@ -50,6 +50,7 @@ def subject_require_contact(request):
def subject_edit(request, id):
the_subject = get_object_or_404(Subject, id=id)
contact_attempts = the_subject.contactattempt_set.order_by('-datetime_when').all()
was_dead = the_subject.dead
was_resigned = the_subject.resigned
if request.method == 'POST':
......@@ -68,7 +69,8 @@ def subject_edit(request, id):
return wrap_response(request, 'subjects/edit.html', {
'form': form,
'subject': the_subject
'subject': the_subject,
'contact_attempts': contact_attempts
})
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment