From bf9fecfb03cb147430dcd3476a76a40528aabba2 Mon Sep 17 00:00:00 2001 From: Piotr Dobrowolski Date: Tue, 21 Apr 2020 08:39:16 +0200 Subject: [PATCH] Delivery method field --- formity/__init__.py | 2 ++ formity/admin.py | 17 +++++++++++ formity/models.py | 2 ++ .../f801adcdbdff_add_delivery_method.py | 28 +++++++++++++++++++ 4 files changed, 49 insertions(+) create mode 100644 migrations/versions/f801adcdbdff_add_delivery_method.py diff --git a/formity/__init__.py b/formity/__init__.py index 77a1f6b..9ccf1b5 100644 --- a/formity/__init__.py +++ b/formity/__init__.py @@ -1,4 +1,6 @@ import flask +import logging +logging.basicConfig(level=logging.DEBUG) from formity.admin import IndexView from formity.external_auth import ExternalSpaceAuth from formity.extensions import db, migrate, admin, babel, metrics, cache diff --git a/formity/admin.py b/formity/admin.py index fc063d2..0b2d86e 100644 --- a/formity/admin.py +++ b/formity/admin.py @@ -5,6 +5,7 @@ import csv from flask import redirect, flash, request, url_for, make_response, current_app, session import flask_admin import pdfplumber +from flask_admin.form import rules from formity.extensions import admin, db, ModelView, ModelViewHighSecurity, AdminSecurityMixin from wtforms import TextAreaField, validators from formity.models import FaceshieldRequest, RequestChange, Status, PostalCode, ExternalUser @@ -94,6 +95,18 @@ class FaceshieldRequestAdmin(ModelView): 'postalcode_info', ) + form_create_rules = ( + 'entity_info', 'full_name', 'phone_number', + rules.FieldSet(( + rules.Field('shipping_name'), + rules.Field('shipping_street'), + rules.Field('shipping_postalcode'), + rules.Field('shipping_city'), + rules.Field('shipping_latitude'), + rules.Field('shipping_longitude'), + ), 'Shipping information') + ) + form_overrides = {'entity_info': TextAreaField, 'extra': TextAreaField, 'remarks': TextAreaField} form_args = { 'shipping_name': {'validators': [validators.Length(max=35)]}, @@ -117,6 +130,10 @@ class FaceshieldRequestAdmin(ModelView): ('hskrk', 'hskrk'), ('hswro', 'hswro'), ], + 'delivery_method': [ + ('shipping', 'Shipping'), + ('pickup', 'Pickup'), + ], 'shipping_provider': [ ('kurjerzy', 'Kurjerzy'), ('xbs', 'XBS Group'), diff --git a/formity/models.py b/formity/models.py index a7bde82..c87525d 100644 --- a/formity/models.py +++ b/formity/models.py @@ -69,6 +69,8 @@ class FaceshieldRequest(db.Model): adapter_rd40_dar_delivered = db.Column(db.Integer, default=0, server_default='0') adapter_secura_dar_delivered = db.Column(db.Integer, default=0, server_default='0') + delivery_method = db.Column(db.String, default='shipping') + shipping_name = db.Column(db.String) shipping_street = db.Column(db.String) shipping_postalcode = db.Column(db.String) diff --git a/migrations/versions/f801adcdbdff_add_delivery_method.py b/migrations/versions/f801adcdbdff_add_delivery_method.py new file mode 100644 index 0000000..486a359 --- /dev/null +++ b/migrations/versions/f801adcdbdff_add_delivery_method.py @@ -0,0 +1,28 @@ +"""Add delivery_method + +Revision ID: f801adcdbdff +Revises: daa8f858e53a +Create Date: 2020-04-19 21:00:27.052904 + +""" +from alembic import op +import sqlalchemy as sa + + +# revision identifiers, used by Alembic. +revision = 'f801adcdbdff' +down_revision = 'daa8f858e53a' +branch_labels = None +depends_on = None + + +def upgrade(): + # ### commands auto generated by Alembic - please adjust! ### + op.add_column('faceshield_request', sa.Column('delivery_method', sa.String(), nullable=True)) + # ### end Alembic commands ### + + +def downgrade(): + # ### commands auto generated by Alembic - please adjust! ### + op.drop_column('faceshield_request', 'delivery_method') + # ### end Alembic commands ###