summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorNico von Geyso <Nico.Geyso@FU-Berlin.de>2012-08-15 15:49:32 +0200
committerNico von Geyso <Nico.Geyso@FU-Berlin.de>2012-08-15 15:49:32 +0200
commited5e89436e219f0cf0f699c322f23b762d18f385 (patch)
tree354e0311bfd748538adadab35b4962051b1b1252
parente44bf2091f1e873b8a7b1978fbf5754f1363bab2 (diff)
downloadklausuren-ed5e89436e219f0cf0f699c322f23b762d18f385.tar.gz
klausuren-ed5e89436e219f0cf0f699c322f23b762d18f385.tar.bz2
klausuren-ed5e89436e219f0cf0f699c322f23b762d18f385.zip
added module entries in form upload
-rw-r--r--app.py17
-rw-r--r--static/style_v2.css (renamed from static/style_v1.css)19
-rw-r--r--templates/layout.html9
-rw-r--r--templates/module_show.html44
-rw-r--r--templates/upload.html125
5 files changed, 134 insertions, 80 deletions
diff --git a/app.py b/app.py
index 430942c..51249de 100644
--- a/app.py
+++ b/app.py
@@ -62,8 +62,9 @@ class UploadForm(Form):
-@app.route('/<study>/upload', methods=['GET', 'POST'])
-def upload(study):
+@app.route('/<study>/upload/', methods=['GET', 'POST'])
+@app.route('/<study>/upload/<module>', methods=['GET', 'POST'])
+def upload(study, module = None):
form = UploadForm()
form.study.data = study
@@ -95,7 +96,17 @@ def upload(study):
return redirect(url_for('study_index', study = study, module = module))
- return render_template('upload.html', study = study, form = form)
+ module_list = None
+ if module:
+ try: form.module.data = [k for (k,v) in form.module.choices if v == module][0]
+ except: pass
+
+ print(form.module.data)
+ module_list = fit[study].get_module(module)
+
+ return render_template('upload.html',
+ study = study, form = form, module_list = module_list, module=module
+ )
diff --git a/static/style_v1.css b/static/style_v2.css
index 35063ad..89fa08b 100644
--- a/static/style_v1.css
+++ b/static/style_v2.css
@@ -13,7 +13,7 @@ body {
background-color: #fff;
clear: both;
margin: 0px auto;
- width: 920px;
+ width: 1000px;
padding: 20px;
}
@@ -72,11 +72,6 @@ footer a, footer a:visited {
font-size: 50%;
}
-#header form {
- float: right;
- padding-right: 20px;
- text-align: right;
-}
#filelist {
list-style: none;
@@ -176,3 +171,15 @@ select {
margin: 0px auto;
}
+#upload form, #upload div {
+ display: inline-block;
+}
+
+#upload div {
+ vertical-align: top;
+ padding-left: 30px;
+}
+
+.right {
+ float: right;
+}
diff --git a/templates/layout.html b/templates/layout.html
index 85107b8..bad67a2 100644
--- a/templates/layout.html
+++ b/templates/layout.html
@@ -3,7 +3,7 @@
<head>
<meta charset="utf-8" />
<link rel="stylesheet" type="text/css" media="all" href="{{url_for('static',
- filename='style_v1.css')}}" />
+ filename='style_v2.css')}}" />
<script type="text/javascript" src="{{url_for('static',filename='jquery-1.8.0.min.js')}}"></script>
<title>Fit</title>
</head>
@@ -26,12 +26,13 @@
<div id="sub-header">
{% if study %}
<p>
- {% if not request.base_url.endswith(url_for('upload', study=study)) %}
+ {% if not request.base_url.endswith(url_for('upload', study=study
+ , module = module))%}
{% if not request.base_url.endswith(url_for('forbidden')) %}
- <a href="{{url_for('upload', study=study)}}">neue Klausur hochladen</a>
+ <a href="{{url_for('upload', study=study, module=module)}}">neue Klausur hochladen</a>
{% endif %}
{% else %}
- <a href="{{url_for('index')}}">zurück</a>
+ <a href="{{url_for('study_index', study=study, module=module)}}">zurück</a>
{% endif %}
</p>
<h2>{{study.capitalize()}}</h2>
diff --git a/templates/module_show.html b/templates/module_show.html
index 8b2dda1..9e7e336 100644
--- a/templates/module_show.html
+++ b/templates/module_show.html
@@ -1,24 +1,32 @@
+{% macro render_module_list(module) %}
+<ul id="module-list">
+{% for year,files in module %}
+ <li>
+ {{year}}
+ <ul>
+ {% for name,oid in files %}
+ <li>
+ <a href="{{url_for('study_show', study = study, oid=oid)}}">{{name}}</a>
+ </li>
+ {% endfor %}
+ </ul>
+ </li>
+{% else %}
+ <li>Keine Einträge bisher</li>
+{% endfor %}
+</ul>
+{% endmacro %}
+
{% extends "layout.html" %}
{% block body %}
- <h3>{{module}}</h3>
+ <p class="right">
+ <a href="{{url_for('study_index', study=study)}}">zurück zur Übersicht</a>
+ </p>
- <p>
- <a href="{{url_for('study_index', study=study)}}">zurück zur Übersicht</a>
- </p>
+ <div id="module-index">
+ <h3>{{module}}</h3>
- <ul>
- {% for year,files in entries %}
- <li>
- {{year}}
- <ul>
- {% for name,oid in files %}
- <li>
- <a href="{{url_for('study_show', study = study, oid=oid)}}">{{name}}</a>
- </li>
- {% endfor %}
- </ul>
- </li>
- {% endfor %}
- </ul>
+ {{ render_module_list(entries)}}
+ </div>
{% endblock %}
diff --git a/templates/upload.html b/templates/upload.html
index dec17c8..a248040 100644
--- a/templates/upload.html
+++ b/templates/upload.html
@@ -1,55 +1,82 @@
+{% macro render_fields(field, extra_field) %}
+ <p>
+ <label>{{ field.label }}</label>
+ {{ field|safe }}
+
+ {% if extra_field %}
+ {{extra_field(**kwargs)|safe}}
+ {% endif %}
+
+ {% if field.errors or extra_field.errors %}
+ <span class="error">
+ {% for error in field.errors %}{{ error }}{% endfor %}
+ {% for error in extra_field.errors %}{{ error }}{% endfor %}
+ </span>
+ {% endif %}
+ </p>
+{% endmacro %}
+
+{% macro render_field(field) %}
+ {{ render_fields(field, None) }}
+{% endmacro %}
+
{% extends "layout.html" %}
{% block body %}
<h3>neue Klausur hochladen</h3>
- {% macro render_fields(field, extra_field) %}
- <p>
- <label>{{ field.label }}</label>
- {{ field|safe }}
-
- {% if extra_field %}
- {{extra_field(**kwargs)|safe}}
- {% endif %}
-
- {% if field.errors or extra_field.errors %}
- <span class="error">
- {% for error in field.errors %}{{ error }}{% endfor %}
- {% for error in extra_field.errors %}{{ error }}{% endfor %}
- </span>
- {% endif %}
- </p>
- {% endmacro %}
-
- {% macro render_field(field) %}
- {{ render_fields(field, None) }}
- {% endmacro %}
-
- <script type="text/javascript">
- $(document).ready(function() {
- var elem = $('#module_new');
- var module = $('#module');
- if(module.val() != 'new')
- elem.hide();
-
- module.change(function(){
- var value = $(this).val();
- if(value == 'new')
+ <div id="upload">
+ <form method="POST" enctype="multipart/form-data"
+ action="{{url_for('upload', study=study, module=module)}}">
+ {{ form.csrf_token }}
+
+ {{ render_field(form.exam) }}
+ {{ render_fields(form.module, form.module_new, placeholder='Modulname') }}
+ {{ render_field(form.year) }}
+
+ <p>
+ <input type="submit" value="Hochladen" />
+ </p>
+ </form>
+
+ <div id="module-index">
+ {% if module and module_list %}
+ <h4>{{module}}</h4>
+ {% from 'module_show.html' import render_module_list %}
+ {{ render_module_list(module_list)}}
+ {% endif %}
+ </div>
+ </div>
+
+ <script type="text/javascript">
+ $(document).ready(function() {
+ var elem = $('#module_new');
+ var module = $('#module');
+
+ if(module.val() != 'new')
+ elem.hide();
+
+ module.change(function(){
+ var current = $(this);
+ var value = current.val();
+ var text = current.find("option:selected").text();
+
+ if(value == 'new') {
+ $('#module-index').fadeOut('fast', function() {
elem.fadeIn();
- else
- elem.fadeOut();
- });
- });
- </script>
- <form method="POST" enctype="multipart/form-data"
- action="{{url_for('upload', study=study)}}">
- {{ form.csrf_token }}
-
- {{ render_field(form.exam) }}
- {{ render_fields(form.module, form.module_new, placeholder='Modulname') }}
- {{ render_field(form.year) }}
-
- <p>
- <input type="submit" value="Hochladen" />
- </p>
- </form>
+ });
+ } else {
+ elem.fadeOut('fast', function() {
+ if(value != '') {
+ $.get('/{{study}}/modules/' + text, function(data) {
+ $('#upload div').replaceWith($(data).find('#module-index'));
+ });
+ } else {
+ $('#module-index').fadeOut('fast');
+ }
+ });
+
+ }
+ });
+ });
+ </script>
{% endblock %}