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')
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)
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())
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/")
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)
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)
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})
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)
def create(request): if request.method == 'POST': form = PersonForm(request.POST) if form.is_valid(): return HttpResponseRedirect('/create')
def form(request): data = {} data['form'] = PersonForm() return render(request, 'form.html', data)