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

Get PDF for weekday [TIMETABLE/SUBSTITUTIONS]

parent 10881b8c
No related branches found
No related tags found
1 merge request!86Merge school-apps
import os
import subprocess
from django.utils import timezone
......@@ -85,11 +86,11 @@ TEX_HEADER_CLASS = """
def generate_pdf(tex, filename):
tex_file = open(filename + ".tex", "w")
tex_file = open(os.path.join("latex", filename + ".tex"), "w")
tex_file.write(tex)
tex_file.close()
bash_command = "pdflatex {}.tex".format(filename)
bash_command = "pdflatex -output-directory latex {}.tex".format(filename)
process = subprocess.Popen(bash_command.split(), stdout=subprocess.PIPE)
output = process.communicate()[0]
# bash_command = "xreader {}.pdf".format(filename)
......
......@@ -6,5 +6,6 @@ urlpatterns = [
path('quick/', views.quicklaunch, name='timetable_quicklaunch'),
path('<str:plan_type>/<int:plan_id>/', views.plan, name='timetable_plan'),
path('substitutions/', views.substitutions, name='timetable_substitutions'),
path('substitutions/<int:year>/<int:month>/<int:day>/', views.substitutions, name='timetable_substitutions'),
path('substitutions/<int:year>/<int:month>/<int:day>/', views.substitutions, name='timetable_substitutions_date'),
path('class.pdf', views.sub_pdf, name="timetable_substitutions_pdf")
]
import datetime
import os
from django.contrib.auth.decorators import login_required
from django.http import Http404
from django.http import Http404, FileResponse
from django.shortcuts import render
from timetable.pdf import generate_class_tex, generate_pdf
......@@ -64,6 +67,28 @@ def plan(request, plan_type, plan_id):
return render(request, 'timetable/plan.html', context)
def get_next_weekday(date):
if date.isoweekday() in {6, 7}:
date += datetime.timedelta(days=date.isoweekday() % 4)
return date
@login_required
def sub_pdf(request):
today = timezone.datetime.now()
first_day = get_next_weekday(today)
subs = get_substitutions_by_date(first_day)
sub_table = generate_sub_table(subs)
tex = generate_class_tex(sub_table, first_day)
print(first_day)
print(tex)
generate_pdf(tex, "class")
file = open(os.path.join("latex", "class.pdf"), "rb")
return FileResponse(file, content_type="application/pdf")
@login_required
def substitutions(request, year=None, day=None, month=None):
date = timezone.datetime.now()
......
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