diff --git a/formity/models.py b/formity/models.py index 43b6ed3..dcd0067 100644 --- a/formity/models.py +++ b/formity/models.py @@ -19,3 +19,6 @@ class FaceshieldRequest(db.Model): created = db.Column(db.DateTime, default=datetime.utcnow, nullable=False) updated = db.Column(db.DateTime, default=datetime.utcnow, nullable=False, onupdate=datetime.utcnow) + + ua = db.Column(db.String) + ip = db.Column(db.String) diff --git a/formity/views.py b/formity/views.py index ba6fd41..3d5e096 100644 --- a/formity/views.py +++ b/formity/views.py @@ -1,4 +1,4 @@ -from flask import Blueprint, render_template, flash +from flask import Blueprint, render_template, flash, request from formity.extensions import db from formity.models import FaceshieldRequest from formity.forms import FaceshieldRequestForm @@ -9,11 +9,14 @@ bp = Blueprint('main', __name__) def index(): form = FaceshieldRequestForm() if form.validate_on_submit(): - db.session.add(FaceshieldRequest(**{ + fr = FaceshieldRequest(**{ k: v for k, v in form.data.items() if hasattr(FaceshieldRequest, k) - })) + }) + fr.ua = request.headers.get('User-Agent') + fr.ip = request.remote_addr + db.session.add(fr) db.session.commit() flash('Zapytanie zostało wysłane.', 'success') diff --git a/migrations/versions/383ca469a0fe_add_ua_and_ip_fields.py b/migrations/versions/383ca469a0fe_add_ua_and_ip_fields.py new file mode 100644 index 0000000..05aecfe --- /dev/null +++ b/migrations/versions/383ca469a0fe_add_ua_and_ip_fields.py @@ -0,0 +1,30 @@ +"""Add ua and ip fields + +Revision ID: 383ca469a0fe +Revises: 1379dfa9e1d4 +Create Date: 2020-03-27 11:38:07.181589 + +""" +from alembic import op +import sqlalchemy as sa + + +# revision identifiers, used by Alembic. +revision = '383ca469a0fe' +down_revision = '1379dfa9e1d4' +branch_labels = None +depends_on = None + + +def upgrade(): + # ### commands auto generated by Alembic - please adjust! ### + op.add_column('faceshield_request', sa.Column('ip', sa.String(), nullable=True)) + op.add_column('faceshield_request', sa.Column('ua', sa.String(), nullable=True)) + # ### end Alembic commands ### + + +def downgrade(): + # ### commands auto generated by Alembic - please adjust! ### + op.drop_column('faceshield_request', 'ua') + op.drop_column('faceshield_request', 'ip') + # ### end Alembic commands ###