Skip to content
Snippets Groups Projects
Commit 39008fd4 authored by Piotr Gawron's avatar Piotr Gawron
Browse files

daily planning doesn't show workers who are disabled

parent 643530b8
No related branches found
No related tags found
1 merge request!84Resolve "possibility to remove worker"
Pipeline #
......@@ -235,8 +235,7 @@ def events(request, date):
availabilities = []
holidays = []
workers = Worker.objects.filter(locations__in=get_filter_locations(request.user)).exclude(
role=Worker.ROLE_CHOICES_SECRETARY).distinct()
workers = get_workers_for_daily_planning(request)
for worker in workers:
availabilities = availabilities + get_availabilities(worker, date)
......@@ -249,12 +248,18 @@ def events(request, date):
})
def get_workers_for_daily_planning(request):
result = Worker.objects.filter(locations__in=get_filter_locations(request.user)). \
filter(user__is_active=True).exclude(
role=Worker.ROLE_CHOICES_SECRETARY).distinct()
return result
def availabilities(request, date):
availabilities = []
holidays = []
conflicts = []
workers = Worker.objects.filter(locations__in=get_filter_locations(request.user)).exclude(
role=Worker.ROLE_CHOICES_SECRETARY).distinct()
workers = get_workers_for_daily_planning(request)
for worker in workers:
availabilities = availabilities + get_availabilities(worker, date)
......
from django.contrib.auth.decorators import login_required
from django.http import JsonResponse
from web.api_views.daily_planning import get_workers_for_daily_planning
from ..models import Worker
from ..views.notifications import get_filter_locations
@login_required
......@@ -23,8 +23,8 @@ def units(request):
@login_required
def workers_for_daily_planning(request):
workers = Worker.objects.filter(locations__in=get_filter_locations(request.user)).exclude(
role=Worker.ROLE_CHOICES_SECRETARY).distinct()
workers = get_workers_for_daily_planning(request)
print workers
workers_list_for_json = []
for worker in workers:
worker_dict_for_json = {
......
......@@ -22,4 +22,4 @@ class LoggedInTestCase(TestCase):
class LoggedInWithWorkerTestCase(LoggedInTestCase):
def setUp(self):
super(LoggedInWithWorkerTestCase, self).setUp()
self.worker = create_worker(self.user)
self.worker = create_worker(self.user, True)
......@@ -3,14 +3,15 @@ import datetime
import json
from django.contrib.auth.models import User
from django.test import Client
from django.test import Client, RequestFactory
from django.test import TestCase
from django.urls import reverse
from web.api_views.daily_planning import get_workers_for_daily_planning
from web.models import Worker, Availability, Holiday, AppointmentTypeLink
from web.models.constants import TUESDAY_AS_DAY_OF_WEEK
from web.tests.functions import create_worker, create_subject, create_appointment, create_flying_team, create_visit, \
create_appointment_type
create_appointment_type, get_test_location
class TestApi(TestCase):
......@@ -166,3 +167,31 @@ class TestApi(TestCase):
availabilities = json.loads(response.content)['availabilities']
self.assertEqual(2, len(availabilities))
def test_get_workers_for_daily_planning(self):
factory = RequestFactory()
request = factory.get('/api/workers')
request.user = self.user
user = User.objects.create_user(username="a", email='jacob@bla', password="b")
invalid_worker = create_worker(user)
invalid_worker.locations = [get_test_location()]
invalid_worker.save()
invalid_worker.disable()
workers = get_workers_for_daily_planning(request)
self.assertFalse(invalid_worker in workers)
def test_get_workers_for_daily_planning_2(self):
factory = RequestFactory()
request = factory.get('/api/workers')
request.user = self.user
invalid_worker = create_worker()
invalid_worker.locations = [get_test_location()]
invalid_worker.save()
invalid_worker.disable()
workers = get_workers_for_daily_planning(request)
self.assertFalse(invalid_worker in workers)
# coding=utf-8
import json
from django.contrib.auth.models import User
from django.test import Client
from django.test import TestCase
from django.urls import reverse
from web.tests.functions import create_worker
from web.tests import LoggedInWithWorkerTestCase
class TestApi(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.worker = create_worker(self.user)
self.client.login(username=username, password=password)
class TestApi(LoggedInWithWorkerTestCase):
def test_specializations(self):
specialization_name = "some spec"
......@@ -54,3 +42,8 @@ class TestApi(TestCase):
units = json.loads(response.content)['units']
self.assertTrue(unit_name in units)
def test_workers_for_daily_planning(self):
response = self.client.get(reverse('web.api.workers'))
self.assertEqual(response.status_code, 200)
self.assertTrue(self.worker.first_name in response.content)
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