Пример #1
0
def test_personform_twins_get_or_create(d, s):
    # We first make a call for jamesy
    form = PersonForm(d)
    form.full_clean()
    result0 = form.get_or_create()

    # Second call should create a new instance,
    # since seb is another person
    form = PersonForm(s)
    form.full_clean()
    result1 = form.get_or_create()
    assert result0 != result1
    Fixture('person/tests/test_personform_twins.json',
            models=[Person]).assertNoDiff()
Пример #2
0
 def get_labels(self):
     self.labels = dict()
     f = PersonForm()
     for name, field in f.fields.items():
         self.labels[name] = field.label
     self.labels['insured'] = 'Assuré'
     self.labels['distancevp'] = 'KM parcourus VP'
Пример #3
0
def test_personform_clean_nir(d):
    form = PersonForm(d)
    form.full_clean()
    assert 'nir' not in form.errors

    d['nir'] = '123456789012a'
    form.full_clean()
    assert 'nir' in form.errors

    d['nir'] = '12345678901234'
    form.full_clean()
    assert 'nir' in form.errors

    d['nir'] = '123456789012'
    form.full_clean()
    assert 'nir' in form.errors
Пример #4
0
    def post_mrsrequest(self, request, *args, **kwargs):
        if not self.has_perm():
            return http.HttpResponseBadRequest()

        # for display
        self.caisse_form = CaisseVoteForm(prefix='other')

        self.forms = collections.OrderedDict([
            ('mrsrequest',
             MRSRequestCreateForm(request.POST,
                                  mrsrequest_uuid=self.mrsrequest_uuid)),
            ('person', PersonForm(request.POST)),
            ('certify', CertifyForm(request.POST)),
        ])
        self.forms['transport'] = TransportIterativeForm(
            request.POST,
            instance=Transport(mrsrequest_id=self.mrsrequest_uuid),
        )
        for key, value in self.request.POST.items():
            if '-date_return' not in key:
                continue

            number = key.split('-')[0]
            self.forms['transport-{}'.format(number)] = form = TransportForm(
                request.POST,
                instance=Transport(mrsrequest_id=self.mrsrequest_uuid),
                prefix=number,
            )
            form.fields['date_depart'].label += ' {}'.format(number)
            form.fields['date_return'].label += ' {}'.format(number)

        with transaction.atomic():
            self.success = not self.form_errors() and self.save_mrsrequest()

        return generic.TemplateView.get(self, request, *args, **kwargs)
Пример #5
0
def person_edit(request, pk):
    if pk == 'new':
        instance = None
    else:
        instance = get_object_or_404(Person, pk=pk)
    form = PersonForm(request.POST or None, instance=instance)
    if form.is_valid():
        person = form.save()
        messages.success(request, 'Successfully saved!')
        return redirect('person_edit', pk=person.pk)
    return render(
        request,
        'person/person_edit.html',
        {
            'main_menu_key': 'persons',
            'form': form,
        },
    )
Пример #6
0
 def dispatch(self, request, *args, **kwargs):
     action = request.POST.get('action')
     self.profile_form = PersonForm(
         (request.POST if action == 'profile' else None),
         (request.FILES if action == 'profile' else None),
         prefix='profile', instance=request.user
     )
     self.password_form = UserPasswordChangeForm(request.user, (request.POST if action == 'password' else None),
                                                 prefix='password')
     self.email_form = UserEmailChangeForm(request.user, (request.POST if action == 'email' else None),
                                                 prefix='email')
     return super(PersonEditView, self).dispatch(request, *args, **kwargs)
Пример #7
0
class PersonEditView(TemplateView):
    template_name = 'person/profile_edit.html'

    @method_decorator(login_required)
    def dispatch(self, request, *args, **kwargs):
        action = request.POST.get('action')
        self.profile_form = PersonForm(
            (request.POST if action == 'profile' else None),
            (request.FILES if action == 'profile' else None),
            prefix='profile', instance=request.user
        )
        self.password_form = UserPasswordChangeForm(request.user, (request.POST if action == 'password' else None),
                                                    prefix='password')
        self.email_form = UserEmailChangeForm(request.user, (request.POST if action == 'email' else None),
                                                    prefix='email')
        return super(PersonEditView, self).dispatch(request, *args, **kwargs)

    def get_context_data(self, **kwargs):
        context = super(PersonEditView, self).get_context_data(**kwargs)
        context['profile_form'] = self.profile_form
        context['password_form'] = self.password_form
        context['email_form'] = self.email_form
        return context

    def post(self, request, *args, **kwargs):
        if self.profile_form.is_valid():
            self.profile_form.save()
            messages.success(request, ugettext(u'Профиль успешно сохранен.'))
            return redirect(request.path)
        elif self.password_form.is_valid():
            self.password_form.save()
            request.user.backend = request.session[BACKEND_SESSION_KEY]
            login(request, request.user)
            messages.success(request, ugettext(u'Пароль успешно сохранен.'))
            return redirect(request.path)
        elif self.email_form.is_valid():
            self.email_form.save()
            messages.success(request, ugettext(u'Email успешно сохранен.'))
            return redirect(request.path)
        return self.get(request, *args, **kwargs)
Пример #8
0
def create_person(request):

    # redirect to sign in not logged in
    if 'id' not in request.session.keys():
        return redirect('/sign_in/')

    # if this is a POST request we need to process the form dat
    if request.method == 'POST':
        # create a form instance and populate it with data from the request:

        form = PersonForm(request.POST)
        # check whether it's valid:
        if form.is_valid():
            form_data = form.cleaned_data
            current_user = User.objects.get(pk=request.user.id)

            new_row = Person(
                user=current_user,
                name=form_data['name'],
                message=form_data['message'],
                created=datetime.datetime.now(),
                start_date=form_data['start_date'],
                last_send=None,
                next_send=form_data['start_date'],
                interval=form_data['interval'],
                interval_type=form_data['interval_type'],
                snooze=0,
                snooze_interval=None,
                snooze_interval_type=None,
                snooze_last_send=None,
                snooze_next_send=None,
                in_deleted=0
            )
            new_row.save()
            return redirect('/view_person_list/')
    else:
        form = PersonForm()

    return render(request, 'person/create_person.html', {'form': form})
Пример #9
0
def edit_person(request):

    if 'id' not in request.session.keys():
        return redirect('/sign_in/')
    #TODO: check to make sure user logged in is associated with person - person ID may be public in the URL

    # get person ID from querystring
    person_id = request.GET['id']
    # pass person ID to Person model to pull current person
    current_person = Person.objects.get(pk=person_id)

    form = PersonForm(request.POST or None, instance=current_person)
    if request.POST and form.is_valid():
        form.save()

        # Save was successful
        redirect_url = '/view_person_list/'
        return redirect(redirect_url)

    context = {'form': form}

    return render(request, 'person/update_person.html', context=context)
Пример #10
0
def test_personform_clean_birth_date(d):
    form = PersonForm(d)
    form.full_clean()
    assert 'birth_date' not in form.errors

    d['birth_date'] = '2999-01-01'
    form.full_clean()
    assert 'birth_date' in form.errors
Пример #11
0
    def post_get_forms(self, request):
        forms = collections.OrderedDict([
            ('mrsrequest',
             MRSRequestCreateForm(request.POST,
                                  mrsrequest_uuid=self.mrsrequest_uuid)),
            ('person', PersonForm(request.POST)),
            ('certify', CertifyForm(request.POST)),
            # Deactivate email consent for now, not used anymore by staff
            # ('use_email', UseEmailForm(request.POST)),
        ])
        forms['transport'] = TransportIterativeForm(request.POST)
        forms['transport_formset'] = TransportFormSet(request.POST)

        return forms
Пример #12
0
    def get(self, request, *args, **kwargs):
        self.object = MRSRequest()
        self.object.allow(request)
        self.mrsrequest_uuid = str(self.object.id)
        self.caisse_form = CaisseVoteForm(prefix='other')

        self.forms = collections.OrderedDict([
            ('mrsrequest', MRSRequestCreateForm(instance=self.object)),
            ('person', PersonForm(
                initial={k: v for k, v in request.GET.items()})),
            ('transport', TransportIterativeForm()),
            ('certify', CertifyForm()),
        ])

        return super().get(request, *args, **kwargs)
Пример #13
0
def create_patient(request):
    form_title = "Add New Patient"
    if request.method == 'POST':
        form = PersonForm(request.POST)
        if form.is_valid():
            patient = Patient()
            patient.surname = request.POST['surname']
            patient.firstname = request.POST['firstname']
            patient.othername = request.POST['othername']
            patient.prefix = Prefix.objects.get(pk=request.POST['prefix'])
            patient.id_number = "{}-{}".format(
                date.today().strftime('%Y-%m'),
                1 if len(Patient.objects.all()) == 0 else
                (Patient.objects.all().order_by('-id')[0].id) + 1)
            patient.save()
            return HttpResponseRedirect(
                reverse('patient:view_patient', args=(patient.id, )))
    else:
        form = PersonForm()

    return render(request, 'patient/create_patient.html', {
        'form': form,
        'form_title': form_title
    })
Пример #14
0
def edit_patient(request, patient_id):
    form_title = 'Edit Patient Information'
    patient = get_object_or_404(Patient, pk=patient_id)
    if request.method == 'POST':
        form = PersonForm(request.POST, instance=patient)
        if form.is_valid():
            form.save()
            return HttpResponseRedirect(
                reverse('patient:view_patient', args=(patient.id, )))
    else:
        form = PersonForm(instance=patient)

    return render(request, 'patient/create_patient.html', {
        'form': form,
        'form_title': form_title
    })
Пример #15
0
    def post_caisse(self, request, *args, **kwargs):
        # needed for rendering
        self.forms = collections.OrderedDict([
            ('mrsrequest',
             MRSRequestCreateForm(initial={'caisse': 'other'},
                                  mrsrequest_uuid=self.mrsrequest_uuid)),
            ('person', PersonForm()),
            ('certify', CertifyForm()),
        ])
        self.forms['transport'] = TransportIterativeForm(
            instance=Transport(mrsrequest_id=self.mrsrequest_uuid), )

        self.caisse_form = CaisseVoteForm(request.POST, prefix='other')
        with transaction.atomic():
            self.success_caisse = (self.caisse_form.is_valid()
                                   and self.save_caisse())

        return generic.TemplateView.get(self, request, *args, **kwargs)
Пример #16
0
    def get(self, request, *args, **kwargs):
        self.object = MRSRequest()
        self.object.allow(request)
        self.mrsrequest_uuid = str(self.object.id)

        self.forms = collections.OrderedDict([
            ('mrsrequest', MRSRequestCreateForm(instance=self.object, )),
            ('person',
             PersonForm(initial={k: v
                                 for k, v in request.GET.items()})),
            ('transport', TransportIterativeForm()),
            ('transport_formset', TransportFormSet()),
            ('certify', CertifyForm()),
            # Deactivate email consent for now, not used anymore by staff
            # ('use_email', UseEmailForm()),
        ])

        return super().get(request, *args, **kwargs)
Пример #17
0
def test_personform_get_or_create(d):
    form = PersonForm(d)
    form.full_clean()
    result0 = form.get_or_create()

    Fixture('./src/person/tests/test_personform.json',
            models=[Person]).assertNoDiff()

    # Second call should not create a new instance
    result1 = form.get_or_create()
    assert result0 == result1
    Fixture('person/tests/test_personform.json',
            models=[Person]).assertNoDiff()
Пример #18
0
def add_or_edit(request, id):
    if id is None:
        person = None
        page_name = "add"
    else:
        person = get_object_or_404(Person, id=id)
        page_name = "edit"
    if request.method == "GET":
        form = PersonForm(instance=person)
        phone_forms = PhoneNumberFormSet(instance=person)
    if request.method == "POST":
        form = PersonForm(request.POST, instance=person)
        phone_forms = PhoneNumberFormSet(request.POST, instance=person)
        if form.is_valid() and phone_forms.is_valid():
            person = form.save()
            phone_forms = PhoneNumberFormSet(request.POST, instance=person)
            phone_forms.is_valid()
            phone_forms.save()
            return HttpResponseRedirect('/person/%s/' % person.id)
    return render_to_response('add.html', {'page_name': page_name, 'form': form, 'phone_forms': phone_forms, 'person': person}, RequestContext(request))
Пример #19
0
def test_personform_clean_nir(d):
    form = PersonForm(d)
    form.full_clean()
    assert 'nir' not in form.errors

    for i in range(0, 12):
        d['nir'] = 'a' * i
        form.full_clean()
        assert 'nir' in form.errors

    d['nir'] = 'aoeu'
    form.full_clean()
    assert 'nir' in form.errors

    d['nir'] = '123456789012a'
    form.full_clean()
    assert 'nir' in form.errors

    d['nir'] = '12345678901234'
    form.full_clean()
    assert 'nir' in form.errors

    d['nir'] = 123456789012
    form.full_clean()
    assert 'nir' in form.errors