diff --git a/app/campaigns/forms.py b/app/campaigns/forms.py index e69de29..52b1712 100644 --- a/app/campaigns/forms.py +++ b/app/campaigns/forms.py @@ -0,0 +1,20 @@ +from flask_wtf import FlaskForm +from wtforms import StringField, \ + EmailField, \ + PasswordField, \ + SubmitField, \ + SelectField, \ + BooleanField,\ + DateField, IntegerField +from flask_wtf.file import FileField, FileRequired, FileAllowed +from wtforms.validators import DataRequired, ValidationError, NumberRange, EqualTo, Email +from app.campaigns.models import Campaign +from flask_login import current_user +# import logging +# logging.basicConfig(filename='logs.log', encoding='utf-8', level=logging.DEBUG) + +class CreateCampaignForm(FlaskForm): + title = StringField('Title', validators=[DataRequired()]) + active = BooleanField('Initialize as active?') + goal = IntegerField('Goal') + submit = SubmitField('Add Campaign') \ No newline at end of file diff --git a/app/campaigns/routes.py b/app/campaigns/routes.py index a6f4fe0..9697735 100644 --- a/app/campaigns/routes.py +++ b/app/campaigns/routes.py @@ -2,7 +2,7 @@ from app import db from app.campaigns import campaigns from app.users.models import User from app.campaigns.models import Campaign -# from forms import LoginForm, RequestResetForm, ResetPasswordForm, EditUserForm, AddUserForm +from app.campaigns.forms import CreateCampaignForm from flask import render_template, redirect, url_for, flash, request from flask_login import login_required, login_user, current_user, logout_user from werkzeug.security import check_password_hash, generate_password_hash @@ -10,9 +10,20 @@ from datetime import datetime import os from time import sleep -@campaigns.route('add_campaign') +@campaigns.route('add_campaign', methods=['GET', 'POST']) def add_campaign(): - return render_template('add_campaign.html') + form = CreateCampaignForm() + if form.validate_on_submit(): + campaign = Campaign( + title=form.title.data, + active=form.active.data, + goal=form.goal.data + ) + db.session.add(campaign) + db.session.commit() + return redirect(url_for('admin.administration')) + return render_template('add_campaign.html', + form=form) @campaigns.route('campaign_page/') def campaign_page(campaign_id): diff --git a/app/campaigns/templates/add_campaign.html b/app/campaigns/templates/add_campaign.html index d100737..4394370 100644 --- a/app/campaigns/templates/add_campaign.html +++ b/app/campaigns/templates/add_campaign.html @@ -1,2 +1,56 @@ {% extends 'base.html' %} -{% block title %}Add campaign{% endblock title %} \ No newline at end of file +{% block title %}Add campaign{% endblock title %} +{% block content %} +
+
+
+
+
+

Register

+
+ {{ form.hidden_tag() }} + +
+ {{ form.title.label(class="form-label") }} + {{ form.title(class="form-control") }} + {% if form.title.errors %} +
    + {% for error in form.title.errors %} +
  • {{ error }}
  • + {% endfor %} +
+ {% endif %} +
+ +
+ {{ form.active.label(class="form-label") }} + {{ form.active() }} + {% if form.active.errors %} +
    + {% for error in form.active.errors %} +
  • {{ error }}
  • + {% endfor %} +
+ {% endif %} +
+ +
+ {{ form.goal.label(class="form-label") }} + {{ form.goal(class="form-control") }} + {% if form.goal.errors %} +
    + {% for error in form.goal.errors %} +
  • {{ error }}
  • + {% endfor %} +
+ {% endif %} +
+ + {{ form.submit(class='btn btn-primary') }} +
+
+
+
+
+
+{% endblock content %} \ No newline at end of file