From df88c566783d109592b8d306699fea852cf93b96 Mon Sep 17 00:00:00 2001 From: Piotr Dobrowolski Date: Wed, 15 Apr 2020 22:26:48 +0200 Subject: [PATCH] Add 3d printed parts handling --- formity/forms.py | 5 +++ formity/models.py | 10 +++++ .../fc5645f54f55_add_3d_printed_filters.py | 42 +++++++++++++++++++ templates/index.html | 17 ++++++++ 4 files changed, 74 insertions(+) create mode 100644 migrations/versions/fc5645f54f55_add_3d_printed_filters.py diff --git a/formity/forms.py b/formity/forms.py index fd5a355..6c471bb 100644 --- a/formity/forms.py +++ b/formity/forms.py @@ -16,6 +16,11 @@ class FaceshieldRequestForm(FlaskForm): faceshield_full_required = IntegerField('Pilnie potrzebna minimalna ilość pełnych przyłbic', default=0, validators=[validators.InputRequired()], widget=html5.NumberInput()) + adapter_3m_dar_required = IntegerField('Adaptery 3M - DAR', default=0) + adapter_easybreath_dar_required = IntegerField('Adaptery Decathlon Easybreath - DAR', default=0) + adapter_rd40_dar_required = IntegerField('Adaptery RD40 - DAR', default=0) + adapter_secura_dar_required = IntegerField('Adaptery Secura - DAR', default=0) + rules_approval = BooleanField(Markup('Pracuję dla powyższej placówki medycznej i zobowiązuję się do nieodsprzedawania otrzymanego sprzętu ochronnego. Jestem świadom, że nie jest to certyfikowany produkt medyczny i nie jest dezynfekowany/sterylny.'), validators=[validators.DataRequired()]) def validate_faceshield_model(self, field): diff --git a/formity/models.py b/formity/models.py index 1fad915..0ea29c8 100644 --- a/formity/models.py +++ b/formity/models.py @@ -56,6 +56,16 @@ class FaceshieldRequest(db.Model): faceshield_front_delivered = db.Column(db.Integer, default=0, server_default='0') faceshield_full_delivered = db.Column(db.Integer, default=0, server_default='0') + adapter_3m_dar_required = db.Column(db.Integer, default=0, server_default='0') + adapter_easybreath_dar_required = db.Column(db.Integer, default=0, server_default='0') + adapter_rd40_dar_required = db.Column(db.Integer, default=0, server_default='0') + adapter_secura_dar_required = db.Column(db.Integer, default=0, server_default='0') + + adapter_3m_dar_delivered = db.Column(db.Integer, default=0, server_default='0') + adapter_easybreath_dar_delivered = db.Column(db.Integer, default=0, server_default='0') + 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') + shipping_name = db.Column(db.String) shipping_street = db.Column(db.String) shipping_postalcode = db.Column(db.String) diff --git a/migrations/versions/fc5645f54f55_add_3d_printed_filters.py b/migrations/versions/fc5645f54f55_add_3d_printed_filters.py new file mode 100644 index 0000000..60c1224 --- /dev/null +++ b/migrations/versions/fc5645f54f55_add_3d_printed_filters.py @@ -0,0 +1,42 @@ +"""Add 3d printed filters + +Revision ID: fc5645f54f55 +Revises: fc0fbabc5fb6 +Create Date: 2020-04-15 09:32:27.006555 + +""" +from alembic import op +import sqlalchemy as sa + + +# revision identifiers, used by Alembic. +revision = 'fc5645f54f55' +down_revision = 'fc0fbabc5fb6' +branch_labels = None +depends_on = None + + +def upgrade(): + # ### commands auto generated by Alembic - please adjust! ### + op.add_column('faceshield_request', sa.Column('adapter_3m_dar_delivered', sa.Integer(), server_default='0', nullable=True)) + op.add_column('faceshield_request', sa.Column('adapter_3m_dar_required', sa.Integer(), server_default='0', nullable=True)) + op.add_column('faceshield_request', sa.Column('adapter_easybreath_dar_delivered', sa.Integer(), server_default='0', nullable=True)) + op.add_column('faceshield_request', sa.Column('adapter_easybreath_dar_required', sa.Integer(), server_default='0', nullable=True)) + op.add_column('faceshield_request', sa.Column('adapter_rd40_dar_delivered', sa.Integer(), server_default='0', nullable=True)) + op.add_column('faceshield_request', sa.Column('adapter_rd40_dar_required', sa.Integer(), server_default='0', nullable=True)) + op.add_column('faceshield_request', sa.Column('adapter_secura_dar_delivered', sa.Integer(), server_default='0', nullable=True)) + op.add_column('faceshield_request', sa.Column('adapter_secura_dar_required', sa.Integer(), server_default='0', nullable=True)) + # ### end Alembic commands ### + + +def downgrade(): + # ### commands auto generated by Alembic - please adjust! ### + op.drop_column('faceshield_request', 'adapter_secura_dar_required') + op.drop_column('faceshield_request', 'adapter_secura_dar_delivered') + op.drop_column('faceshield_request', 'adapter_rd40_dar_required') + op.drop_column('faceshield_request', 'adapter_rd40_dar_delivered') + op.drop_column('faceshield_request', 'adapter_easybreath_dar_required') + op.drop_column('faceshield_request', 'adapter_easybreath_dar_delivered') + op.drop_column('faceshield_request', 'adapter_3m_dar_required') + op.drop_column('faceshield_request', 'adapter_3m_dar_delivered') + # ### end Alembic commands ### diff --git a/templates/index.html b/templates/index.html index d2cfbfe..f909fde 100644 --- a/templates/index.html +++ b/templates/index.html @@ -64,6 +64,23 @@ lub oryginalną szybkę do dopasowania. {{ render_field(form.faceshield_model, split=6) }} +
+
+

Adaptery do masek

+

Dzięki współpracy z drukarzami 3D jesteśmy w stanie dostarczyć adaptery do masek na filtry DAR dostępne w ochronie zdrowia.

+
+
+
+ {{ render_field(form.adapter_3m_dar_required, split=6) }} + {{ render_field(form.adapter_easybreath_dar_required, split=6) }} +
+
+ {{ render_field(form.adapter_rd40_dar_required, split=6) }} + {{ render_field(form.adapter_secura_dar_required, split=6) }} +
+
+
+