some baseline stuff

This commit is contained in:
2022-11-12 19:10:48 -05:00
parent af1291516c
commit 235d36a22a
9 changed files with 243 additions and 3 deletions

3
.gitignore vendored
View File

@@ -1,3 +1,6 @@
### Database file
database.db
### Python template
# Byte-compiled / optimized / DLL files
__pycache__/

View File

@@ -1,8 +1,10 @@
<?xml version="1.0" encoding="UTF-8"?>
<module type="PYTHON_MODULE" version="4">
<component name="NewModuleRootManager">
<content url="file://$MODULE_DIR$" />
<orderEntry type="inheritedJdk" />
<content url="file://$MODULE_DIR$">
<excludeFolder url="file://$MODULE_DIR$/venv" />
</content>
<orderEntry type="jdk" jdkName="Python 3.10 (BellScheduler)" jdkType="Python SDK" />
<orderEntry type="sourceFolder" forTests="false" />
</component>
</module>

5
.idea/misc.xml generated
View File

@@ -1,4 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ProjectRootManager" version="2" project-jdk-name="Python 2.7" project-jdk-type="Python SDK" />
<component name="ProjectRootManager" version="2" project-jdk-name="Python 3.10 (BellScheduler)" project-jdk-type="Python SDK" />
<component name="PyCharmProfessionalAdvertiser">
<option name="shown" value="true" />
</component>
</project>

53
app.py Normal file
View File

@@ -0,0 +1,53 @@
import os
from flask import Flask, render_template, request, redirect, url_for
from flask_sqlalchemy import SQLAlchemy
basedir = os.path.abspath(os.path.dirname(__file__))
app = Flask(__name__)
app.config['SQLALCHEMY_DATABASE_URI'] =\
'sqlite:///' + os.path.join(basedir, 'database.db')
app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = False
db = SQLAlchemy(app)
class Period(db.Model):
period = db.Column(db.Integer, primary_key=True)
periodTime = db.Column(db.Integer)
weekendSchedule = db.Column(db.Boolean)
def __repr__(self):
return f'<Period "{self.period}">'
class Task(db.Model):
id = db.Column(db.Integer, primary_key=True)
title = db.Column(db.String(100))
description = db.Column(db.Text)
created_timestamp = db.Column(db.Integer)
due_timestamp = db.Column(db.Integer)
def __repr__(self):
return f'<Task "{self.title}">'
class Event(db.Model):
id = db.Column(db.Integer, primary_key=True)
scheduled_date = db.Column(db.String(100))
period = db.relationship(Period, backref='events')
tasks = db.relationship(Task, backref='events')
period_num = db.Column(db.Integer, db.ForeignKey('period.period'))
task_id = db.Column(db.Integer, db.ForeignKey('task.id'))
def __repr__(self):
return f'<Event "{self.id}">'
@app.route('/')
def index():
events = Event.query.all()
return render_template('index.html', events=events)
@app.route('/task/<int:task_id>/')
def task(task_id):
task = Task.query.get_or_404(task_id)
return render_template('task.html', task=task)

65
init_db.py Normal file
View File

@@ -0,0 +1,65 @@
from app import db, Period, Task, Event
period1 = Period(period=1, periodTime='08:30:00', weekendSchedule=True)
period2 = Period(period=2, periodTime='09:00:00', weekendSchedule=True)
period3 = Period(period=3, periodTime='09:30:00', weekendSchedule=True)
period4 = Period(period=4, periodTime='10:30:00', weekendSchedule=True)
period5 = Period(period=5, periodTime='11:00:00', weekendSchedule=True)
period6 = Period(period=6, periodTime='12:30:00', weekendSchedule=False)
period7 = Period(period=7, periodTime='13:45:00', weekendSchedule=False)
period8 = Period(period=8, periodTime='14:30:00', weekendSchedule=False)
period9 = Period(period=9, periodTime='15:30:00', weekendSchedule=False)
task1 = Task(id=1,
title="Sexy ERP time",
description="Be the dominant partner and fuck so much XD",
created_timestamp='1668278862', due_timestamp='')
task2 = Task(id=2, title="Test task",
description="Test",
created_timestamp='1668278862',
due_timestamp='')
task3 = Task(id=3, title="La Nager",
description="Francis stuff",
created_timestamp='1668278862',
due_timestamp='')
task4 = Task(id=4, title="Ops/Tech Meeting",
description="HEIL GEORGE!",
created_timestamp='1668278862',
due_timestamp='')
task5 = Task(id=5, title="Tech Team Meeting",
description="Awkward AF",
created_timestamp='1668278862',
due_timestamp='')
task6 = Task(id=6, title="Write BellScheduler",
description="heh",
created_timestamp='1668278862',
due_timestamp='')
task7 = Task(id=7, title="Fap to cunny porn",
description="FBI OPEN UP!",
created_timestamp='1668278862',
due_timestamp='')
task8 = Task(id=8, title="Go on vrchat",
description="Mmm... virtual headpats!",
created_timestamp='1668278862',
due_timestamp='')
task9 = Task(id=9, title="Brush teeth",
description="Ya dont do that more often, ya gross fuck",
created_timestamp='1668278862',
due_timestamp='')
event1 = Event(id=1, scheduled_date='11-12-2022', period_num=1, task_id=4)
event2 = Event(id=2, scheduled_date='11-12-2022', period_num=2, task_id=2)
event3 = Event(id=3, scheduled_date='11-12-2022', period_num=3, task_id=5)
event4 = Event(id=4, scheduled_date='11-12-2022', period_num=4, task_id=6)
event5 = Event(id=5, scheduled_date='11-12-2022', period_num=5, task_id=1)
event6 = Event(id=6, scheduled_date='11-12-2022', period_num=6, task_id=3)
event7 = Event(id=7, scheduled_date='11-12-2022', period_num=7, task_id=7)
event8 = Event(id=8, scheduled_date='11-12-2022', period_num=8, task_id=8)
event9 = Event(id=9, scheduled_date='11-12-2022', period_num=9, task_id=9)
db.session.add_all([period1, period2, period3, period4, period5, period6, period7, period8, period9])
db.session.add_all([task1, task2, task3, task4, task5, task6, task7, task8, task9])
db.session.add_all([event1, event2, event3, event4, event5, event6, event7, event8, event9])
db.session.commit()

22
requirements.txt Normal file
View File

@@ -0,0 +1,22 @@
# This file is used by pip to install required python packages
# Usage: pip install -r requirements.txt
# Flask Framework
click==8.1.3
Flask==2.2.2
itsdangerous==2.1.2
Jinja2==3.1.2
MarkupSafe==2.1.1
Werkzeug==2.2.2
# Flask Packages
Flask-Login==0.6.2
Flask-Migrate==3.1.0
Flask-Script==2.0.6
Flask-SQLAlchemy==3.0.2
Flask-WTF==1.0.1
Flask-User==1.0.2.2
# Automated tests
pytest==7.2.0
pytest-cov==4.0.0

52
templates/base.html Normal file
View File

@@ -0,0 +1,52 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>{% block title %} {% endblock %} - BellScheduler</title>
<style>
.title {
margin: 5px;
}
.content {
margin: 5px;
width: 100%;
display: flex;
flex-direction: row;
flex-wrap: wrap;
}
.event {
flex: 20%;
padding: 10px;
margin: 5px;
background-color: #f3f3f3;
inline-size: 100%;
}
.title a {
color: #00a36f;
text-decoration: none;
}
nav a {
color: #d64161;
font-size: 3em;
margin-left: 50px;
text-decoration: none;
}
</style>
</head>
<body>
<nav>
<a href="{{ url_for('index') }}">BellScheduler</a>
<a href="#">Tasks</a>
<a href="#">About</a>
</nav>
<hr>
<div class="content">
{% block content %} {% endblock %}
</div>
</body>
</html>

23
templates/index.html Normal file
View File

@@ -0,0 +1,23 @@
{% extends 'base.html' %}
{% block content %}
<span class="title"><h1>{% block title %} Events {% endblock %}</h1></span>
<div class="content">
{% for event in events %}
<div class="event">
<p><b>Period {{ event.period_num }}</b></p>
<b>
<p class="title">
<a href="/task/{{ event.tasks.id }}">
{{ event.tasks.title }}
</a>
</p>
</b>
<div class="content">
<p>{{ event.tasks.description }}</p>
</div>
<hr>
</div>
{% endfor %}
</div>
{% endblock %}

17
templates/task.html Normal file
View File

@@ -0,0 +1,17 @@
{% extends 'base.html' %}
{% block content %}
<span class="title"><h1>{% block title %} {{ task.title }} {% endblock %}</h1></span>
<div class="content">
<div class="task">
<p><b>#{{ task.id }}</b></p>
<b>
<p class="title">{{ task.title }}</p>
</b>
<div class="content">
<p>{{ task.description }}</p>
</div>
<hr>
</div>
</div>
{% endblock %}