def test_get_by_child(self):
        departments = [DepartmentFactory(), DepartmentFactory()]
        persons = [PersonFactory(), PersonFactory()]

        # Not on wainting list yet
        self.assertEqual(len(WaitingList.get_by_child(persons[0])), 0)

        # Sign up for waiting LIst
        WaitingListFactory(person=persons[0], department=departments[0])
        WaitingListFactory(person=persons[1], department=departments[0])

        self.assertEqual(WaitingList.get_by_child(persons[0]),
                         [(departments[0], 1)])
        self.assertEqual(WaitingList.get_by_child(persons[1]),
                         [(departments[0], 2)])

        # Sign up for more
        WaitingListFactory(person=persons[1], department=departments[1])
        WaitingListFactory(person=persons[0], department=departments[1])

        # Checks for Ordering
        self.assertEqual(
            WaitingList.get_by_child(persons[0]),
            [(departments[0], 1), (departments[1], 1)],
        )
        self.assertEqual(
            WaitingList.get_by_child(persons[1]),
            [(departments[0], 2), (departments[1], 2)],
        )
    def setUp(self):
        self.department = DepartmentFactory()

        self.activity = Activity(
            start_date=datetime.now(),
            end_date=datetime.now() +
            timedelta(days=365),  # Has to be long enough to be a season
            department=self.department,
        )
        self.activity.save()
        self.assertTrue(
            self.activity.is_season())  # If this fail increase the end_date

        self.family = Family(email="*****@*****.**")
        self.family.save()

        self.person = Person(family=self.family)
        self.person.save()

        self.member = Member(department=self.department,
                             person=self.person,
                             is_active=True)
        self.member.save()

        waitinglist = WaitingList(
            person=self.person,
            department=self.department,
            on_waiting_list_since=datetime.now() - timedelta(days=1),
        )
        waitinglist.save()
        self.waitinglist_id = waitinglist.id
Esempio n. 3
0
def WaitingListSetSubscription(request, id, departmentId, action):

    family = user_to_person(request.user).family
    person = get_object_or_404(Person, pk=id)

    if person.family.id != family.id:
        raise Http404("Person ikke i samme familie som bruger")
    department = get_object_or_404(Department, pk=departmentId)

    if action == "subscribe":
        if WaitingList.objects.filter(person=person, department=department):
            raise Http404("{} er allerede på {}s venteliste".format(
                person.name, department.name))
        waiting_list = WaitingList()
        waiting_list.person = person
        waiting_list.department = department
        waiting_list.save()

    if action == "unsubscribe":
        try:
            waiting_list = WaitingList.objects.get(person=person,
                                                   department=department)
            waiting_list.delete()
        except Exception:
            raise Http404("{} er ikke på {}s venteliste".format(
                person.name, department.name))

    return HttpResponseRedirect(reverse("family_detail"))
Esempio n. 4
0
def WaitingListSetSubscription(request, unique, id, departmentId, action):
    try:
        unique = uuid.UUID(unique)
    except ValueError:
        return HttpResponseBadRequest("Familie id er ugyldigt")

    person = get_object_or_404(Person, pk=id)
    if person.family.unique != unique:
        raise Http404("Person eksisterer ikke")
    department = get_object_or_404(Department, pk=departmentId)

    if action == 'subscribe':
        print('subscribing')
        if WaitingList.objects.filter(person=person, department=department):
            raise Http404("{} er allerede på {}s venteliste".format(
                person.name, department.name))
        waiting_list = WaitingList()
        waiting_list.person = person
        waiting_list.department = department
        waiting_list.save()

    if action == 'unsubscribe':
        print('un-subscribing')
        try:
            waiting_list = WaitingList.objects.get(person=person,
                                                   department=department)
            waiting_list.delete()
        except:
            raise Http404("{} er ikke på {}s venteliste".format(
                person.name, department.name))

    return HttpResponseRedirect(reverse('family_detail', args=[unique]))
def WaitingListSetSubscription(request, id, departmentId, action):

    family = user_to_person(request.user).family
    person = get_object_or_404(Person, pk=id)

    if person.family.id != family.id:
        raise Http404("Person ikke i samme familie som bruger")
    department = get_object_or_404(Department, pk=departmentId)

    if action == 'subscribe':
        if WaitingList.objects.filter(person=person, department=department):
            raise Http404("{} er allerede på {}s venteliste".format(person.name, department.name))
        waiting_list = WaitingList()
        waiting_list.person = person
        waiting_list.department = department
        waiting_list.save()

    if action == 'unsubscribe':
        try:
            waiting_list = WaitingList.objects.get(person=person, department=department)
            waiting_list.delete()
        except Exception:
            raise Http404("{} er ikke på {}s venteliste".format(person.name, department.name))

    return HttpResponseRedirect(reverse('family_detail'))
Esempio n. 6
0
    def setUp(self):
        self.union = Union()
        self.union.save()

        self.department = Department(
            union=self.union
        )
        self.department.save()

        self.activity = Activity(
            start_date=datetime.now(),
            end_date=datetime.now() + timedelta(days=365),  # Has to be long enough to be a season
            department=self.department
        )
        self.activity.save()
        self.assertTrue(self.activity.is_season())  # If this fail increase the end_date

        self.family = Family(
            email='*****@*****.**'
        )
        self.family.save()

        self.person = Person(
            family=self.family
        )
        self.person.save()

        waitinglist = WaitingList(
            person=self.person,
            department=self.department,
            on_waiting_list_since=datetime.now() - timedelta(days=1)
        )
        waitinglist.save()
        self.waitinglist_id = waitinglist.id

        self.emailtemplate = EmailTemplate(
            idname='ACT_INVITE',
            from_address='*****@*****.**'
        )
        self.emailtemplate.save()
Esempio n. 7
0
class TestModelWaitinglist(TestCase):
    def setUp(self):
        self.union = Union()
        self.union.save()

        self.department = Department(union=self.union)
        self.department.save()

        self.family = Family()
        self.family.save()

        self.person1 = Person(family=self.family)
        self.person1.save()
        self.person1_waitinglist = WaitingList(person=self.person1,
                                               department=self.department)
        self.person1_waitinglist.save()

        # Artifically wait 60 seconds with adding person2 to the waitinglist
        with freeze_time(datetime.now() + timedelta(seconds=60)):
            self.person2 = Person(family=self.family)
            self.person2.save()
            self.person2_waitinglist = WaitingList(person=self.person2,
                                                   department=self.department)
            self.person2_waitinglist.save()

    def test_waiting_list_position(self):
        self.assertEqual(self.person1_waitinglist.number_on_waiting_list(), 1)
        self.assertEqual(self.person2_waitinglist.number_on_waiting_list(), 2)
Esempio n. 8
0
    def setUp(self):
        self.union = Union()
        self.union.save()

        self.department = Department(union=self.union)
        self.department.save()

        self.family = Family()
        self.family.save()

        self.person1 = Person(family=self.family)
        self.person1.save()
        self.person1_waitinglist = WaitingList(person=self.person1,
                                               department=self.department)
        self.person1_waitinglist.save()

        # Artifically wait 60 seconds with adding person2 to the waitinglist
        with freeze_time(datetime.now() + timedelta(seconds=60)):
            self.person2 = Person(family=self.family)
            self.person2.save()
            self.person2_waitinglist = WaitingList(person=self.person2,
                                                   department=self.department)
            self.person2_waitinglist.save()