def new_contact(): tmpl_args = {'page_title':'add contact info'} form = ContactForm() if form.validate_on_submit(): contact_info = Contact() db.session.add(contact_info) contact_info = update_model_from_form(contact_info, form) icon_file = request.files.get('icon') if icon_file: icon_filename = save_icon(icon_file) if icon_filename: contact_info.icon_filename = icon_filename db.session.commit() flash('<strong>{} has been added</strong>'.format(contact_info.name)) msg = '[{}] added to contact info'.format(contact_info.name) current_app.logger.info(msg) return redirect(url_for('Admin.contact')) if len(form.errors): flash_form_errors(form.errors) return render_template('admin_new_contact.html', form=form, **tmpl_args)
def edit_contact(_id): """edit/update contact or link to social media profile """ tmpl_args = {'page_title':'edit contact info'} try: contact_info = Contact.query.get_or_404(_id) except: current_app.log_exception(sys.exc_info()) return redirect(url_for('Admin.contact')) if request.method == 'GET': form = ContactForm(obj=contact_info) if request.method == 'POST': form = ContactForm(request.form) if len(contact_info.email): tmpl_args['type'] = 'email' else: tmpl_args['type'] = 'profile' filename = contact_info.icon_filename tmpl_args['icon_filename'] = filename if form.validate_on_submit(): db.session.add(contact_info) update_model_from_form(contact_info, form) icon_file = request.files.get('icon') if icon_file: icon_filename = save_icon(icon_file) if icon_filename: contact_info.icon_filename = icon_filename if tmpl_args['type'] == 'email': name = contact_info.email if tmpl_args['type'] == 'profile': name = contact_info.name flash('<strong>“{}”</strong> has been updated'.format(name)) db.session.commit() msg = '[{}] updated'.format(name) current_app.logger.info(msg) return redirect(url_for('Admin.edit_contact', _id=_id)) if len(form.errors): flash_form_errors(form.errors) return render_template('admin_edit_contact.html', form=form, **tmpl_args)