create campaign form start

This commit is contained in:
Yisroel Baum 2024-09-24 11:42:21 +03:00
parent 93dd70849a
commit 7ada4b2a6f
3 changed files with 89 additions and 4 deletions

View file

@ -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')

View file

@ -2,7 +2,7 @@ from app import db
from app.campaigns import campaigns from app.campaigns import campaigns
from app.users.models import User from app.users.models import User
from app.campaigns.models import Campaign 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 import render_template, redirect, url_for, flash, request
from flask_login import login_required, login_user, current_user, logout_user from flask_login import login_required, login_user, current_user, logout_user
from werkzeug.security import check_password_hash, generate_password_hash from werkzeug.security import check_password_hash, generate_password_hash
@ -10,9 +10,20 @@ from datetime import datetime
import os import os
from time import sleep from time import sleep
@campaigns.route('add_campaign') @campaigns.route('add_campaign', methods=['GET', 'POST'])
def add_campaign(): 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/<campaign_id>') @campaigns.route('campaign_page/<campaign_id>')
def campaign_page(campaign_id): def campaign_page(campaign_id):

View file

@ -1,2 +1,56 @@
{% extends 'base.html' %} {% extends 'base.html' %}
{% block title %}Add campaign{% endblock title %} {% block title %}Add campaign{% endblock title %}
{% block content %}
<main class="container-lg mt-5">
<div class="row justify-content-center">
<div class="col-md-6">
<div class="card">
<div class="card-body">
<h3 class="card-title">Register</h3>
<form method="post" enctype="multipart/form-data">
{{ form.hidden_tag() }}
<div class="mb-3">
{{ form.title.label(class="form-label") }}
{{ form.title(class="form-control") }}
{% if form.title.errors %}
<ul class="errors">
{% for error in form.title.errors %}
<li>{{ error }}</li>
{% endfor %}
</ul>
{% endif %}
</div>
<div class="mb-3">
{{ form.active.label(class="form-label") }}
{{ form.active() }}
{% if form.active.errors %}
<ul class="errors">
{% for error in form.active.errors %}
<li>{{ error }}</li>
{% endfor %}
</ul>
{% endif %}
</div>
<div class="mb-3">
{{ form.goal.label(class="form-label") }}
{{ form.goal(class="form-control") }}
{% if form.goal.errors %}
<ul class="errors">
{% for error in form.goal.errors %}
<li>{{ error }}</li>
{% endfor %}
</ul>
{% endif %}
</div>
{{ form.submit(class='btn btn-primary') }}
</form>
</div>
</div>
</div>
</div>
</main>
{% endblock content %}