mirror of
https://gitlab.crans.org/mediatek/med.git
synced 2025-06-29 21:11:08 +02:00
Linting
This commit is contained in:
@ -1,6 +1,3 @@
|
||||
from argparse import FileType
|
||||
from sys import stdin
|
||||
|
||||
from django.core.management import BaseCommand
|
||||
from media.models import BD, CD, Manga, Revue, Roman, Vinyle, Jeu
|
||||
|
||||
@ -18,47 +15,27 @@ class Command(BaseCommand):
|
||||
|
||||
with open(directory + "/docs/index.md", "w") as f:
|
||||
f.write("# Media de la Mediatek\n\n\n")
|
||||
f.write("Ce site répertorie l'intégralité des media présents à la Mediatek de l'ENS Paris-Saclay.\n")
|
||||
f.write("Ce site répertorie l'intégralité des media présents "
|
||||
"à la Mediatek de l'ENS Paris-Saclay.\n")
|
||||
|
||||
for model_class, file_name in [(BD, "bd.md"), (Manga, "mangas.md"), (Roman, "romans.md"),
|
||||
for model_class, file_name in [(BD, "bd.md"), (Manga, "mangas.md"),
|
||||
(Roman, "romans.md"),
|
||||
(CD, "cd.md"), (Vinyle, "vinyles.md")]:
|
||||
with open(directory + "/docs/" + file_name, "w") as f:
|
||||
f.write("# " + str(model_class._meta.verbose_name_plural).capitalize() + "\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")
|
||||
self.process_model_class(model_class, file_name, f, directory)
|
||||
|
||||
# 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 = 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():
|
||||
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")
|
||||
@ -77,9 +54,46 @@ class Command(BaseCommand):
|
||||
for game in Jeu.objects.order_by("name").all():
|
||||
f.write(f"## {game.name}\n\n\n")
|
||||
f.write(f"Durée : {game.duree}\n\n")
|
||||
f.write(f"Nombre de joueurs : {game.nombre_joueurs_min} - {game.nombre_joueurs_max}\n\n")
|
||||
f.write(f"Nombre de joueurs : {game.nombre_joueurs_min} "
|
||||
f"- {game.nombre_joueurs_max}\n\n")
|
||||
if game.proprietaire.username != "Med":
|
||||
f.write(f"Propriétaire : {game.proprietaire.username}\n\n")
|
||||
if game.comment:
|
||||
f.write(f"Commentaire : {game.comment}\n\n")
|
||||
f.write("\n\n\n")
|
||||
|
||||
def process_model_class(self, model_class, file_name, f, directory):
|
||||
with open(directory + "/docs/" + file_name, "w") as f:
|
||||
f.write("# " + str(model_class._meta.verbose_name_plural)
|
||||
.capitalize() + "\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 : "
|
||||
f"{medium.number_of_pages}\n\n")
|
||||
if hasattr(medium, "rpm"):
|
||||
f.write(f"Tours par minute : "
|
||||
f"{medium.rpm}\n\n")
|
||||
if hasattr(medium, "publish_date"):
|
||||
f.write(f"Publié le : "
|
||||
f"{medium.publish_date}\n\n")
|
||||
if hasattr(medium, "external_url"):
|
||||
f.write(f"Lien : [{medium.external_url}]"
|
||||
f"({medium.external_url})\n\n")
|
||||
f.write("\n\n\n")
|
||||
|
@ -1,7 +1,6 @@
|
||||
from random import random
|
||||
from time import sleep
|
||||
|
||||
from django.core.exceptions import ValidationError
|
||||
from django.core.management import BaseCommand
|
||||
from media.forms import MediaAdminForm
|
||||
from media.models import BD, FutureMedia, Manga, Roman
|
||||
@ -25,7 +24,9 @@ class Command(BaseCommand):
|
||||
continue
|
||||
|
||||
if cl.objects.filter(isbn=isbn).exists():
|
||||
self.stderr.write(self.style.WARNING(f"ISBN {isbn} for type {type_str} already exists, remove it"))
|
||||
self.stderr.write(self.style.WARNING(
|
||||
f"ISBN {isbn} for type {type_str} already exists, "
|
||||
f"remove it"))
|
||||
future_medium.delete()
|
||||
continue
|
||||
|
||||
@ -36,7 +37,8 @@ class Command(BaseCommand):
|
||||
|
||||
try:
|
||||
form.full_clean()
|
||||
if hasattr(form.instance, "subtitle") and not form.instance.subtitle:
|
||||
if hasattr(form.instance, "subtitle") and \
|
||||
not form.instance.subtitle:
|
||||
form.instance.subtitle = ""
|
||||
form.save()
|
||||
future_medium.delete()
|
||||
@ -46,4 +48,5 @@ class Command(BaseCommand):
|
||||
except Exception as e:
|
||||
self.stderr.write(self.style.WARNING(
|
||||
"An error occured while importing ISBN {isbn}: {error}"
|
||||
.format(isbn=isbn, error=str(e.__class__) + "(" + str(e) + ")")))
|
||||
.format(isbn=isbn,
|
||||
error=str(e.__class__) + "(" + str(e) + ")")))
|
||||
|
@ -2,7 +2,6 @@ from argparse import FileType
|
||||
from sys import stdin
|
||||
|
||||
from django.core.management import BaseCommand
|
||||
|
||||
from media.forms import generate_side_identifier
|
||||
from media.models import Roman, Auteur
|
||||
|
||||
|
@ -1,6 +1,5 @@
|
||||
from django.core.management import BaseCommand
|
||||
from django.db import transaction
|
||||
|
||||
from media.forms import generate_side_identifier
|
||||
from media.models import BD, Manga, Roman
|
||||
|
||||
@ -11,11 +10,14 @@ class Command(BaseCommand):
|
||||
type=str,
|
||||
default='bd',
|
||||
choices=['bd', 'manga', 'roman'],
|
||||
help="Type of medium where the sides need to be regenerated.")
|
||||
help="Type of medium where the "
|
||||
"sides need to be regenerated.")
|
||||
parser.add_argument('--noninteractivemode', '-ni', action="store_true",
|
||||
help="Disable the interaction mode and replace existing side identifiers.")
|
||||
help="Disable the interaction mode and replace "
|
||||
"existing side identifiers.")
|
||||
parser.add_argument('--no-commit', '-nc', action="store_true",
|
||||
help="Only show modifications, don't commit them to database.")
|
||||
help="Only show modifications, don't commit "
|
||||
"them to database.")
|
||||
|
||||
@transaction.atomic
|
||||
def handle(self, *args, **options):
|
||||
@ -37,23 +39,30 @@ class Command(BaseCommand):
|
||||
if not obj.authors.all():
|
||||
self.stdout.write(str(obj))
|
||||
subtitle = obj.subtitle if hasattr(obj, "subtitle") else None
|
||||
generated_side_identifier = generate_side_identifier(obj.title, obj.authors.all(), subtitle)
|
||||
generated_side_identifier = generate_side_identifier(
|
||||
obj.title, obj.authors.all(), subtitle)
|
||||
if current_side_identifier != generated_side_identifier:
|
||||
answer = 'y'
|
||||
if interactive_mode:
|
||||
answer = ''
|
||||
while answer != 'y' and answer != 'n':
|
||||
answer = input(f"For medium {obj}, current side: {current_side_identifier}, generated side: "
|
||||
f"{generated_side_identifier}, would you like to replace ? [y/n]").lower()[0]
|
||||
answer = input(f"For medium {obj}, current side: "
|
||||
f"{current_side_identifier}, "
|
||||
f"generated side: "
|
||||
f"{generated_side_identifier}, "
|
||||
f"would you like to replace ? [y/n]")\
|
||||
.lower()[0]
|
||||
if answer == 'y':
|
||||
self.stdout.write(self.style.WARNING(f"Replace side of {obj} from {current_side_identifier} "
|
||||
f"to {generated_side_identifier}..."))
|
||||
self.stdout.write(self.style.WARNING(
|
||||
f"Replace side of {obj} from {current_side_identifier}"
|
||||
f" to {generated_side_identifier}..."))
|
||||
obj.side_identifier = generated_side_identifier
|
||||
if not options["no_commit"]:
|
||||
obj.save()
|
||||
replaced += 1
|
||||
|
||||
if replaced:
|
||||
self.stdout.write(self.style.SUCCESS(f"{replaced} side identifiers were replaced."))
|
||||
self.stdout.write(self.style.SUCCESS(
|
||||
f"{replaced} side identifiers were replaced."))
|
||||
else:
|
||||
self.stdout.write(self.style.WARNING("Nothing changed."))
|
||||
|
Reference in New Issue
Block a user