Example #1
0
def add_person():
    app.logger.info("Route /person called - Adding a new person")
    form = PersonForm()
    if form.validate_on_submit():
        flash('{} {} has been added to the database'.format(
            form.first_name.data, form.last_name.data))
        app.logger.info("New person {} {} added to database".format(
            form.first_name.data, form.last_name.data))
        person = Person(firstname=form.first_name.data,
                        lastname=form.last_name.data,
                        email=form.email.data,
                        mobile=form.mobile.data,
                        ismember=form.is_member.data,
                        gender=form.gender.data,
                        address1=form.address1.data,
                        address2=form.address2.data,
                        suburb=form.suburb.data,
                        postcode=form.postcode.data,
                        accept_newsletter=form.accept_newsletter.data,
                        accept_social_media=form.accept_social_media.data,
                        signed_disclaimer=form.has_signed_disclaimer.data)
        db.session.add(person)
        db.session.commit()
    return render_template('add_person.html',
                           title='Add Person',
                           form=form,
                           pagetitle='Add Person')
Example #2
0
def register_person(request):
    if request.user.is_authenticated:
        HttpResponseRedirect('/profile/' + str(request.user.id))
    user_form = RegisterForm(request.POST)
    address_form = AddressForm(request.POST)
    person_form = PersonForm(request.POST, request.FILES)
    context = {
        'user_form': user_form,
        'address_form': address_form,
        'person_form': person_form,
    }
    if request.method == 'POST':
        if user_form.is_valid() and address_form.is_valid(
        ) and person_form.is_valid():
            user_form.save()
            temp = person_form.save(commit=False)
            temp.user = User.objects.latest('date_joined')
            Group.objects.get(name='Person').user_set.add(temp.user)
            cleaned_info = address_form.cleaned_data
            go = form_address_exists(cleaned_info)
            if go == None:
                address_form.save()
                temp.address = Address.objects.all().order_by("-id")[0]
            else:
                temp.address = go
            temp.save()
            user = authenticate(username=user_form.cleaned_data["username"],
                                password=user_form.cleaned_data["password1"])
            auth_login(request, user)
            return HttpResponseRedirect('/profile/' + str(temp.user.id))
    return render(request, 'register_person.html', context)
Example #3
0
 def test_PersonForm_valid(self):
     form = PersonForm(
         data={
             'email': "*****@*****.**",
             'fullname': "user",
             'password1': "User123456",
             'password2': "User123456",
             'username': "******",
             'bio': "fwegwe",
             'postal_code': "0976",
             'city': "Trondheim",
             'street_address': "Gløs 11 B",
             'country': "Norway"
         })
     self.assertTrue(form.is_valid())
Example #4
0
def edit_person(request):
    user = request.user
    group = user.groups.first()
    if str(group) == "Person":
        person = get_object_or_404(Person, user_id=user.id)
        address = person.address
        if request.method == 'POST':
            user_form = UpdateForm(
                request.POST,
                instance=user,
                initial={'fullname': user.first_name + " " + user.last_name})
            address_form = AddressForm(request.POST, instance=address)
            person_form = PersonForm(request.POST,
                                     request.FILES,
                                     instance=person)
            if user_form.is_valid() and address_form.is_valid(
            ) and person_form.is_valid():
                user_form.save()
                address_form.save()
                person_form.save()
                return HttpResponseRedirect("/profile/" + str(user.id) + "/")
        else:
            user_form = UpdateForm(
                instance=user,
                initial={'fullname': user.first_name + " " + user.last_name})
            address_form = AddressForm(instance=address)
            person_form = PersonForm(instance=person)
        context = {
            'user_form': user_form,
            'address_form': address_form,
            'person_form': person_form,
        }
        return render(request, 'edit_person.html', context)
    else:
        return HttpResponseRedirect("/index/")
Example #5
0
def register():
    form = PersonForm()
    if form.validate_on_submit():
        person = Person(last_name=form.last_name.data,
                        first_name=form.first_name.data,
                        country=form.country.data,
                        city=form.city.data,
                        street=form.street.data,
                        number=form.number.data,
                        products=form.products.data)
        person.calculate_coords()
        if person.longitude and person.latitude:
            db.session.add(person)
            db.session.commit()
        else:
            print("Person " + person.last_name + " " + person.first_name +
                  " does not have a valid address!")
        return redirect(url_for('index'))
    return render_template('register.html', form=form)
Example #6
0
def new_person() -> Any:
    session = new_session()
    person = Person()

    form = PersonForm(request.form)

    if form.validate_on_submit():
        person.name = form.name.data
        person.alt_name = form.alt_name.data
        person.first_name = form.first_name.data
        person.last_name = form.last_name.data
        if form.dob.data != 0:
            person.dob = form.dob.data
        if form.dod.data != 0:
            person.dod = form.dod.data
        session.add(person)
        session.commit()
        log_change(session, 'Person', person.id, action='NEW')
        return redirect(url_for('person', personid=person.id))
    # else:
    #     app.logger.debug("Errors: {}".format(form.errors))
    return render_template('new_person.html', form=form, personid=person.id)
Example #7
0
def person_form(
    request: WSGIRequest
) -> Union[HttpResponse, HttpResponseRedirect, HttpResponsePermanentRedirect]:
    """
    View to display and save Person form
    :param request: WSGI request
    :return:
    """
    if request.method == 'GET':
        form = PersonForm(error_class=BootstrapError)
        return render(request, 'homepage.html', {'form': form})
    if request.method == 'POST':
        form = PersonForm(request.POST, error_class=BootstrapError)
        if form.is_valid():
            form.save()
            return redirect('person_form')
        return render(request, 'homepage.html', {'form': form})
Example #8
0
def person(personid: Any) -> Any:
    session = new_session()
    if personid.isdigit():
        person = session.query(Person).filter(Person.id == personid).first()
    else:
        personid = urllib.parse.unquote(personid)
        person = session.query(Person).filter(Person.name == personid).first()
        if not person:
            person = session.query(Person).filter(
                Person.alt_name == personid).first()

    series = session.query(Bookseries)\
                    .join(Work)\
                    .join(Part.authors)\
                    .filter(Bookseries.id == Work.bookseries_id)\
                    .filter(Part.work_id == Work.id)\
                    .filter(Person.id == personid)\
                    .group_by(Bookseries.id)\
                    .all()
    form = PersonForm(request.form)

    genres = session.query(Genre.name, Genre.abbr, func.count(Genre.id).label('count'))\
                    .join(Work.genres)\
                    .join(Work.parts)\
                    .filter(Part.shortstory_id == None)\
                    .join(Contributor.person)\
                    .filter(Contributor.role_id == 0)\
                    .filter(Contributor.part_id == Part.id)\
                    .filter(Person.id == person.id)\
                    .group_by(Genre.name)\
                    .all()

    genre_list: Dict[str, List[str]] = {}
    for genre in genres:
        genre_list[genre.abbr] = [genre.count, genre.name]

    if request.method == 'GET':
        form.name.data = person.name
        form.alt_name.data = person.alt_name
        form.fullname.data = person.fullname
        form.image_attr.data = person.image_attr
        form.dob.data = person.dob
        form.dod.data = person.dod
        form.bio.data = person.bio
        form.bio_src.data = person.bio_src
    elif form.validate_on_submit():
        person.name = form.name.data
        person.alt_name = form.alt_name.data
        person.fullname = form.fullname.data
        person.image_attr = form.image_attr.data
        person.dob = form.dob.data
        person.dod = form.dod.data
        person.bio = form.bio.data.strip()
        person.bio_src = form.bio_src.data
        session.add(person)
        session.commit()
        log_change(session, 'Person', person.id)
        # Reload data so changes are updated to view
        person = session.query(Person).filter(Person.id == person.id).first()
    else:
        app.logger.error('Errors: {}'.format(form.errors))
        print(f'Errors: {form.errors}')
    return render_template('person.html', person=person,
                           genres=genre_list,
                           series=series,
                           form=form)
Example #9
0
def create(request):
    if request.method == 'POST':
        form = PersonForm(request.POST)
        if form.is_valid():
            return HttpResponseRedirect('/create')
Example #10
0
def form(request):
    data = {}
    data['form'] = PersonForm()
    return render(request, 'form.html', data)