diff --git a/app/app.py b/app/app.py index 4893c55..89bde21 100644 --- a/app/app.py +++ b/app/app.py @@ -4,7 +4,7 @@ from flask import Flask, render_template, redirect, url_for, request, flash from flask_migrate import Migrate from werkzeug.security import generate_password_hash, check_password_hash from flask_login import (LoginManager, login_user, login_required, logout_user, current_user) -from misc import datetime, date, time, currDay, prevDay, ZoneInfo, currVersion, currCommit +from misc import datetime, date, time, currDay, prevDay, ZoneInfo, currVersion, currCommit, convDay from db import (db, Period, Task, Event, User) from sqlalchemy import inspect from forms import (TaskForm, EventForm, PeriodForm, SignupForm, LoginForm, SettingsForm) @@ -258,9 +258,14 @@ def newTask(): sourceIP = request.environ.get('HTTP_X_REAL_IP', request.remote_addr) form = TaskForm() if form.validate_on_submit(): + if form.expiryDate.data is not None: + expiryDate=convDay(form.expiryDate.data) + else: + expiryDate = None task = Task(title=form.title.data, description=form.description.data, - created_timestamp=int(time.time())) + created_timestamp=int(time.time()), + expiry_date=expiryDate) db.session.add(task) db.session.commit() logger.info(f'New task added by \'{current_user.userName}\' from {sourceIP}') @@ -276,6 +281,9 @@ def editTask(task_id): if form.validate_on_submit(): task.title=form.title.data task.description=form.description.data + if form.expiryDate.data is not None: + expiryDate=convDay(form.expiryDate.data) + task.expiry_date=expiryDate db.session.commit() logger.info(f'Task {task_id} edited by \'{current_user.userName}\' from {sourceIP}') return redirect(f'/task/{task_id}') diff --git a/app/forms.py b/app/forms.py index 7bf1d94..2d6f1b8 100644 --- a/app/forms.py +++ b/app/forms.py @@ -3,7 +3,7 @@ from db import Task from flask_wtf import FlaskForm from wtforms import (StringField, DateField, TimeField, TextAreaField, IntegerField, SelectField, BooleanField, RadioField, EmailField, PasswordField) -from wtforms.validators import InputRequired, Length +from wtforms.validators import InputRequired, Length, Optional from wtforms_sqlalchemy.orm import QuerySelectField def get_tasks(): @@ -12,7 +12,7 @@ class TaskForm(FlaskForm): title = StringField('Title', validators=[InputRequired(), Length(min=5, max=100)]) description = TextAreaField('Description', validators=[Length(max=200)]) - expiryDate = DateField('Expiry Date', format='m-%d-%Y') + expiryDate = DateField('Expiry Date', format='%Y-%m-%d', validators=[Optional()]) class EventForm(FlaskForm): # eventDate = DateField('Date', validators=[InputRequired()], format='m-%d-%Y') # period_num = IntegerField(validators=[InputRequired()]) diff --git a/app/misc.py b/app/misc.py index f4667bb..37afac1 100644 --- a/app/misc.py +++ b/app/misc.py @@ -10,6 +10,11 @@ currDay = currDay.strftime('%m-%d-%Y') prevDay = datetime.now() + timedelta(days=-1) prevDay = prevDay.strftime('%m-%d-%Y') +# Convert date to str format +def convDay(inDate): + outDate = inDate.strftime('%m-%d-%Y') + return outDate + with open('__version__','r') as file: currVersion = file.read()