1
0
mirror of https://gitlab.crans.org/mediatek/med.git synced 2025-04-27 17:32:39 +00:00

Compare commits

...

5 Commits

Author SHA1 Message Date
Yohann D'ANELLO
6abbaaf75d Buggy markdown 2020-10-26 14:33:52 +01:00
Yohann D'ANELLO
9afb750be6 Use _meta field instead of class 2020-10-26 14:29:55 +01:00
Yohann D'ANELLO
997c2eac50 Use _meta field instead of class 2020-10-26 14:29:11 +01:00
Yohann D'ANELLO
be2094b263 Revues are treated separately 2020-10-26 14:27:43 +01:00
Yohann D'ANELLO
cb9cd8f9b6 Add script to export the database into a user-friendly website 2020-10-26 14:21:27 +01:00

View File

@ -0,0 +1,67 @@
from argparse import FileType
from sys import stdin
from django.core.management import BaseCommand
from media.models import BD, CD, Manga, Revue, Roman, Vinyle
class Command(BaseCommand):
"""
Extract the database into a user-friendly website written in Markdown.
"""
def add_arguments(self, parser):
parser.add_argument('--directory', '-d', type=str, default='.',
help="Directory where mkdocs is running.")
def handle(self, *args, **options):
directory = options["directory"]
for model_class, file_name in [(BD, "bd.md"), (Manga, "mangas.md"), (Roman, "romans.md"),
(CD, "cd.md"), (Vinyle, "vinyle.md")]:
with open(directory + "/docs/" + file_name, "w") as f:
f.write("# " + str(model_class._meta.verbose_name) + "\n\n\n")
titles = list(set(obj["title"] for obj in model_class.objects.values("title").distinct().all()))
titles.sort()
for title in titles:
f.write(f"## {title}\n\n\n")
for medium in model_class.objects.filter(title=title).order_by("side_identifier").all():
if hasattr(medium, "subtitle"):
f.write(f"### {medium.subtitle}\n\n\n")
if hasattr(medium, "isbn"):
f.write(f"ISBN : {medium.isbn}\n\n")
f.write(f"Cote : {medium.side_identifier}\n\n")
f.write("Auteurs : " + ", ".join(author.name for author in medium.authors.all()) + "\n\n")
if hasattr(medium, "number_of_pages"):
f.write(f"Nombre de pages : {medium.number_of_pages}\n\n")
if hasattr(medium, "rpm"):
f.write(f"Tours par minute : {medium.rpm}\n\n")
if hasattr(medium, "publish_date"):
f.write(f"Publié le : {medium.publish_date}\n\n")
if hasattr(medium, "external_url"):
f.write(f"Lien : [{medium.external_url}]({medium.external_url})\n\n")
f.write("\n\n\n")
# Traitement différent pour les revues
with open(directory + "/docs/revues.md", "w") as f:
f.write("# Revues\n\n\n")
titles = list(set(obj["title"] for obj in Revue.objects.values("title").distinct().all()))
titles.sort()
for title in titles:
f.write(f"## {title}\n\n\n")
for medium in Revue.objects.filter(title=title).order_by("number").all():
f.write(f"### Numéro {medium.number}\n\n\n")
if medium.double:
f.write("Double revue\n\n")
if medium.year:
f.write(f"Année : {medium.year}\n\n")
if medium.month:
f.write(f"Mois : {medium.month}\n\n")
if medium.day:
f.write(f"Jour : {medium.day}\n\n")
f.write("\n\n\n")