forked from CoccoBlu/forme-website-landing-page
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathmanage.py
87 lines (64 loc) · 4.64 KB
/
manage.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
#!/usr/bin/env python
from flask.cli import FlaskGroup
import click
import sqlite3
import json
from app import app
from constants import *
# SETUP
cli = FlaskGroup(app)
@cli.command()
def make_db() -> None:
"""Drops all current tables and sets up new ones in the database"""
# Create db file if it doesn't exist
open(DATABASE, "w")
# Initialize sqlite3
con = sqlite3.connect(DATABASE)
cur = con.cursor()
# Drop all tables
TABLE_PARAMETER = "{TABLE_PARAMETER}"
DROP_TABLE_SQL = f"DROP TABLE {TABLE_PARAMETER};"
GET_TABLES_SQL = "SELECT name FROM sqlite_schema WHERE type='table' AND name != 'sqlite_sequence';"
cur.execute(GET_TABLES_SQL)
tables = cur.fetchall()
for table, in tables:
sql = DROP_TABLE_SQL.replace(TABLE_PARAMETER, table)
cur.execute(sql)
# Init the database
with open(MAKE_DATABASE_COMMAND_FILE, 'r') as sql_file:
sql_script = sql_file.read()
for command in sql_script.split(";"):
con.execute(f"{command};")
# Commit changes
con.commit()
# Close sqlite3 (optional)
cur.close()
con.close()
@cli.command()
@click.option("--user_type", help="Type of user whose schedule is going to be filled.")
def fill_schedules(user_type: str) -> None:
"""Fill the empty schedules of users of the specified type with random activities"""
raise NotImplementedError
@cli.command()
def make_filler_activity() -> None:
"""Make a new activity"""
# Init activity details
TITLE = "Title"
TYPE = "Type"
LENGTH = 2
ABSTRACT = """Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Maecenas volutpat blandit aliquam etiam erat velit scelerisque in. Praesent semper feugiat nibh sed pulvinar proin. Condimentum vitae sapien pellentesque habitant. Mi in nulla posuere sollicitudin aliquam. Commodo viverra maecenas accumsan lacus vel facilisis. Etiam non quam lacus suspendisse faucibus. Eu non diam phasellus vestibulum lorem sed risus ultricies tristique. Egestas pretium aenean pharetra magna ac placerat. Sed velit dignissim sodales ut eu sem integer vitae justo. Facilisi etiam dignissim diam quis enim lobortis scelerisque fermentum dui. In arcu cursus euismod quis.
Lorem sed risus ultricies tristique nulla. Rhoncus urna neque viverra justo nec ultrices dui sapien. Venenatis urna cursus eget nunc. Tristique sollicitudin nibh sit amet commodo nulla facilisi. Rhoncus aenean vel elit scelerisque. Tempor commodo ullamcorper a lacus vestibulum sed arcu. In hendrerit gravida rutrum quisque non tellus orci ac auctor. Eget felis eget nunc lobortis mattis. Turpis nunc eget lorem dolor sed viverra ipsum nunc. Congue nisi vitae suscipit tellus. Pretium vulputate sapien nec sagittis aliquam malesuada bibendum. Rhoncus aenean vel elit scelerisque. Fermentum odio eu feugiat pretium nibh ipsum consequat nisl vel. Ut sem nulla pharetra diam sit. Natoque penatibus et magnis dis parturient. Lacus sed turpis tincidunt id aliquet risus feugiat in ante. Suspendisse in est ante in nibh mauris cursus. Pulvinar neque laoreet suspendisse interdum. Sollicitudin tempor id eu nisl nunc mi ipsum.
Imperdiet dui accumsan sit amet nulla facilisi. Tellus elementum sagittis vitae et leo duis ut diam quam. Quam viverra orci sagittis eu volutpat. Nunc sed id semper risus in hendrerit. Fames ac turpis egestas maecenas pharetra convallis posuere. Ultrices vitae auctor eu augue ut. Amet nisl suscipit adipiscing bibendum est ultricies. Habitasse platea dictumst quisque sagittis purus sit. Lobortis mattis aliquam faucibus purus in. Viverra tellus in hac habitasse. Eu scelerisque felis imperdiet proin fermentum leo. Bibendum ut tristique et egestas quis ipsum suspendisse. Sit amet consectetur adipiscing elit pellentesque. Feugiat vivamus at augue eget arcu dictum varius duis at. Duis at tellus at urna condimentum mattis pellentesque id nibh. Morbi non arcu risus quis varius quam. Fringilla urna porttitor rhoncus dolor purus. Nisl nunc mi ipsum faucibus vitae aliquet nec ullamcorper sit. Pellentesque eu tincidunt tortor aliquam nulla facilisi cras fermentum odio. Quis commodo odio aenean sed.
"""
AVAILABILITY = json.dumps([[20 for _ in range(0, len(TIMESPANS), LENGTH)] for _ in DAYS])
# Init sqlite3
con = sqlite3.connect(DATABASE)
cur = con.cursor()
# Make new activity
cur.execute("INSERT INTO activities (title, abstract, type, length, availability) VALUES (?, ?, ?, ?, ?);", (TITLE, ABSTRACT, TYPE, LENGTH, AVAILABILITY))
con.commit()
# Close connection (optional)
cur.close()
con.close()
if __name__ == '__main__':
cli()