Add style and prepare relationships

This commit is contained in:
Dietrich 2020-07-24 21:43:05 +02:00
parent d303232201
commit a315bb84a4
15 changed files with 189 additions and 34 deletions

45
.vscode/launch.json vendored Normal file
View File

@ -0,0 +1,45 @@
{
// Use IntelliSense to learn about possible attributes.
// Hover to view descriptions of existing attributes.
// For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [
{
"type": "lldb",
"request": "launch",
"name": "Debug executable 'rocket_page'",
"cargo": {
"args": [
"build",
"--bin=rocket_page",
"--package=rocket_page"
],
"filter": {
"name": "rocket_page",
"kind": "bin"
}
},
"args": [],
"cwd": "${workspaceFolder}"
},
{
"type": "lldb",
"request": "launch",
"name": "Debug unit tests in executable 'rocket_page'",
"cargo": {
"args": [
"test",
"--no-run",
"--bin=rocket_page",
"--package=rocket_page"
],
"filter": {
"name": "rocket_page",
"kind": "bin"
}
},
"args": [],
"cwd": "${workspaceFolder}"
}
]
}

View File

@ -8,11 +8,11 @@ edition = "2018"
[dependencies]
rocket = "0.4.5"
diesel = { version = "1.4.0", features = ["sqlite"] }
serde_derive = "*"
serde = "*"
diesel = { version = "1.4", features = ["sqlite"] }
serde_derive = "1.0"
serde = "1.0"
[dependencies.rocket_contrib]
version = "0.4.5"
version = "0.4"
default-features = false
features = ["diesel_sqlite_pool", "handlebars_templates"]
features = ["diesel_sqlite_pool", "handlebars_templates", "serve"]

Binary file not shown.

View File

@ -1,5 +1,6 @@
-- Your SQL goes here
CREATE TABLE stunden (
CREATE TABLE stunden
(
id Integer PRIMARY KEY NOT NULL,
title Text NOT NULL,
short Text NOT NULL,

View File

@ -1,8 +1,11 @@
-- Your SQL goes here
CREATE TABLE klassen (
CREATE TABLE klassen
(
id Integer PRIMARY KEY NOT NULL,
stufe Integer not null,
stufe Integer NOT NULL,
gruppe Text NOT NULL,
titel Text,
ordinal Integer NOT NULL
);

View File

@ -1,2 +1,4 @@
-- This file should undo anything in `up.sql`
Alter Table klassen Rename Column ordnung to ordinal;
ALTER TABLE klassen RENAME COLUMN ordnung TO ordinal;

View File

@ -1,2 +1,4 @@
-- Your SQL goes here
Alter Table klassen Rename Column ordinal to ordnung;
ALTER TABLE klassen RENAME COLUMN ordinal TO ordnung;

View File

@ -1 +1,4 @@
-- This file should undo anything in `up.sql`
DROP TABLE Vertretungen;

View File

@ -1,11 +1,14 @@
-- Your SQL
CREATE TABLE Vertretungen (
CREATE TABLE Vertretungen
(
id Integer PRIMARY KEY NOT NULL,
klasse Integer not null,
stunde Integer not null,
klassen_id Integer NOT NULL,
stunden_id Integer NOT NULL,
fehlend Text NOT NULL,
vertretung Text NOT NULL,
kommentar Text NOT NULL,
FOREIGN KEY(klasse) REFERENCES klasse(id),
FOREIGN KEY(stunde) REFERENCES stunde(id)
FOREIGN KEY(klasse_id) REFERENCES klasse(id),
FOREIGN KEY(stunde_id) REFERENCES stunde(id)
);

View File

@ -17,7 +17,7 @@ use diesel::RunQueryDsl;
use rocket::request::{Form, FromParam};
use rocket::response::Redirect;
use rocket_contrib::databases;
use rocket_contrib::serve::StaticFiles;
use rocket_contrib::templates::Template;
struct StundenByID(i32);
@ -86,6 +86,10 @@ fn main() {
rocket::ignite()
.attach(DbConn::fairing())
.attach(Template::fairing())
.mount(
"/static",
StaticFiles::from(concat!(env!("CARGO_MANIFEST_DIR"), "/static")),
)
.mount("/", routes![index])
.mount("/admin/", routes![get_klasse_form])
.mount("/admin/", routes![post_klasse_form])

View File

@ -1,4 +1,4 @@
use super::schema::klassen;
use super::schema::{klassen, vertretungen};
#[derive(Queryable, Debug, Serialize)]
pub struct Stunden {
@ -8,17 +8,21 @@ pub struct Stunden {
pub ordinal: i32,
}
#[derive(Queryable, Debug, Serialize)]
#[derive(Identifiable, Queryable, Debug, Serialize, Associations)]
#[belongs_to(Klassen)]
#[belongs_to(Stunden)]
#[table_name = "vertretungen"]
pub struct Vertretungen {
pub id: i32,
pub klasse_link: i32,
pub stunde_link: i32,
pub klassen_id: i32,
pub stunden_id: i32,
pub fehlend: String,
pub vertretung: String,
pub kommentar: String,
}
#[derive(Queryable, Debug, Serialize)]
#[derive(Identifiable, Queryable, Debug, Serialize)]
#[table_name = "klassen"]
pub struct Klassen {
pub id: i32,
pub stufe: i32,

View File

@ -1,8 +1,8 @@
table! {
vertretungen (id) {
id -> Integer,
klasse -> Integer,
stunde -> Integer,
klassen_id -> Integer,
stunden_id -> Integer,
fehlend -> Text,
vertretung -> Text,
kommentar -> Text,

88
static/style.css Normal file
View File

@ -0,0 +1,88 @@
body{
background-color: #23272a;
max-width: 880px;
margin: auto;
color: white;
}
h1 {
text-align: center;
font-size: 60px;
}
a:hover {
color: #16e0b8;
}
a:visited {
color: #fcb6b6;
}
.grid-container {
display: grid;
grid-template-columns: auto auto auto auto;
grid-gap: 30px;
padding: 10px;
background-color: #23272a;
align-items: stretch;
}
.grid-item div {
display: table-cell;
border: 1px solid #ccc;
font-size: 48px;
box-shadow: 2px 2px 6px 0px rgba(0, 0, 0, 0.2);
max-width: 100%;
width: 215px;
height: 200px;
margin: auto;
text-align: center;
line-height: 200px;
background-color: #2c2f33;
}
.grid {
display: grid;
grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
grid-gap: 20px;
align-items: stretch;
max-width: 500px;
margin: auto;
}
.grid div {
display: table-cell;
border: 3px solid #ccc;
font-size: 16px;
box-shadow: 2px 2px 6px 0px rgba(0, 0, 0, 0.5);
max-width: 100%;
width: 200px;
height: 100px;
margin: center;
text-align: center;
padding: 10px;
align-items: center;
font-size: 20px;
font-family: Helvetica;
font-weight: bold;
background-color: #2c2f33;
}
div.Fach {
display: table-cell;
border: 3px solid #ccc;
font-size: 16px;
box-shadow: 2px 2px 6px 0px rgba(0, 0, 0, 0.5);
max-width: 100%;
width: 200px;
height: 100px;
margin: center;
text-align: center;
padding: 10px;
align-items: center;
font-size: 20px;
font-family: Helvetica;
font-weight: bold;
background-color: #081B33;
}

View File

@ -1,5 +1,5 @@
{{#* inline "page"}}
<h1>Login</h1>
<h1>Klasse hinzu fügen</h1>
<form action="/admin/add/klasse" method="post" accept-charset="utf-8">
<table>
<tr>

View File

@ -1,5 +1,5 @@
{{#* inline "page"}}
<h1>Stundenplan</h1>
<h1>Vertretungen</h1>
<ul>
{{#each klassen}}
<li>{{this.id}}. {{this.stufe}}{{this.gruppe}}</li>