Skip to content
Snippets Groups Projects
Commit fb505b75 authored by Jonathan Weth's avatar Jonathan Weth :keyboard:
Browse files

Add working upload of files

parent a34d726f
No related branches found
No related tags found
1 merge request!86Merge school-apps
from django.contrib import admin
# Register your models here.
from mealplan.models import MealPlan
admin.site.register(MealPlan)
from django import forms
from django.utils import timezone
from mealplan.models import MealPlan
class MenuUploadForm(forms.ModelForm):
calendar_week = forms.ChoiceField(label="KW", choices=[(cw, cw) for cw in range(1, 53)])
year = forms.ChoiceField(label="Jahr", initial=timezone.datetime.now().year,
choices=[(timezone.datetime.now().year, timezone.datetime.now().year),
(timezone.datetime.now().year + 1, timezone.datetime.now().year + 1)])
# pdf = forms.FileField(label="PDF-Datei")
class Meta:
model = MealPlan
fields = ("calendar_week", "year", "pdf")
......@@ -5,4 +5,7 @@ from django.db import models
class MealPlan(models.Model):
calendar_week = models.IntegerField()
year = models.IntegerField()
pdf = models.FileField(upload_to="mealplan/%Y/")
pdf = models.FileField(upload_to="menus/")
def __str__(self):
return "KW {}/{}".format(self.calendar_week, self.year)
{% include 'partials/header.html' %}
<main>
<h5>Übersicht der hochgeladenen Speisepläne</h5>
</main>
{% include 'partials/footer.html' %}
{% include 'partials/header.html' %}
<main>
<h5>Speiseplan hochladen</h5>
<form method="post" enctype="multipart/form-data">
{% csrf_token %}
<p class="red-text">{{ form.non_field_errors }}</p>
<div class="row">
<div class="input-field col s5">
<div class="red-text">{{ form.calendar_week.errors }}</div>
{# <label for="{{ form.calendar_week.id_for_label }}">Kalenderwoche</label>#}
<small>Kalenderwoche</small>
{{ form.calendar_week }}
</div>
<div class="col s2 center-align">
<p>&nbsp;</p>
<h4>/</h4>
</div>
<div class="input-field col s5">
<div class="red-text">{{ form.year.errors }}</div>
{# <label for="{{ form.year.id_for_label }}">Jahr</label>#}
<small>Jahr</small>
{{ form.year }}
</div>
</div>
<div class="file-field input-field">
<div class="red-text">
{{ form.pdf.errors }}
</div>
<div class="btn">
<span><i class="material-icons center">cloud_upload</i> </span>
<input type="file" name="{{ form.pdf.html_name }}">
</div>
<div class="file-path-wrapper">
<input class="file-path validate" type="text">
</div>
</div>
<button class="waves-effect waves-light btn green" type="submit">
<i class="material-icons left">cloud_upload</i>
Speiseplan hochladen und veröffentlichen
</button>
</form>
<p><a href="{% url 'menu_index' %}" class="waves-effect waves-teal btn-flat">Zurück zur Übersicht</a></p>
</main>
{% include 'partials/footer.html' %}
\ No newline at end of file
......@@ -2,5 +2,6 @@ from django.urls import path
from . import views
urlpatterns = [
path('', views.index, name="menu_index"),
path('upload/', views.upload, name="menu_upload")
]
from django.shortcuts import render
from django.shortcuts import render, redirect
from .forms import MenuUploadForm
# Create your views here.
def upload(request):
if request.method == 'POST':
form = MenuUploadForm(request.POST, request.FILES)
if form.is_valid():
form.save()
return redirect('menu_index')
else:
form = MenuUploadForm()
return render(request, 'menu/upload.html', {
'form': form
})
def index(request):
return render(request, 'menu/index.html')
......@@ -40,10 +40,10 @@ urlpatterns = [
#############
path('timetable/', include('timetable.urls')),
#############
# MEAL PLAN #
#############
path('mealplan/', include('mealplan.urls')),
########
# MENU #
########
path('menu/', include('mealplan.urls')),
#########
# Admin #
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment