mirror of
https://gitlab.crans.org/mediatek/med.git
synced 2025-07-03 10:42:50 +02:00
Compare commits
4 Commits
145806b5ce
...
main
Author | SHA1 | Date | |
---|---|---|---|
3be0c99811 | |||
cf544dc596
|
|||
c0521005ef
|
|||
09c61091d5
|
@ -142,8 +142,8 @@ class BorrowAdmin(VersionAdmin):
|
|||||||
|
|
||||||
class GameAdmin(VersionAdmin, PolymorphicChildModelAdmin):
|
class GameAdmin(VersionAdmin, PolymorphicChildModelAdmin):
|
||||||
list_display = ('title', 'owner', 'duration', 'players_min',
|
list_display = ('title', 'owner', 'duration', 'players_min',
|
||||||
'players_max', 'comment')
|
'players_max', 'comment', 'isbn')
|
||||||
search_fields = ('name', 'owner__username', 'duration', 'comment')
|
search_fields = ('isbn', 'title', 'owner__username', 'duration', 'comment')
|
||||||
autocomplete_fields = ('owner',)
|
autocomplete_fields = ('owner',)
|
||||||
show_in_index = True
|
show_in_index = True
|
||||||
|
|
||||||
|
@ -1,4 +1,7 @@
|
|||||||
|
import os.path
|
||||||
|
|
||||||
from django.core.management import BaseCommand
|
from django.core.management import BaseCommand
|
||||||
|
|
||||||
from media.models import Comic, CD, Manga, Review, Novel, Vinyl, Game
|
from media.models import Comic, CD, Manga, Review, Novel, Vinyl, Game
|
||||||
|
|
||||||
|
|
||||||
@ -13,18 +16,18 @@ class Command(BaseCommand):
|
|||||||
def handle(self, *args, **options):
|
def handle(self, *args, **options):
|
||||||
directory = options["directory"]
|
directory = options["directory"]
|
||||||
|
|
||||||
with open(directory + "/docs/index.md", "w") as f:
|
with open(os.path.join(directory, 'docs', 'index.md'), "w") as f:
|
||||||
f.write("# Media de la Mediatek\n\n\n")
|
f.write("# Media de la Mediatek\n\n\n")
|
||||||
f.write("Ce site répertorie l'intégralité des media présents "
|
f.write("Ce site répertorie l'intégralité des media présents "
|
||||||
"à la Mediatek de l'ENS Paris-Saclay.\n")
|
"à la Mediatek de l'ENS Paris-Saclay.\n")
|
||||||
|
|
||||||
for model_class, file_name in [(Comic, "bd.md"), (Manga, "mangas.md"),
|
for model_class, file_name in [(Manga, "mangas.md"),
|
||||||
(Novel, "romans.md"),
|
(Novel, "romans.md"),
|
||||||
(CD, "cd.md"), (Vinyl, "vinyles.md")]:
|
(CD, "cd.md"), (Vinyl, "vinyles.md")]:
|
||||||
self.process_model_class(model_class, file_name, f, directory)
|
self.process_model_class(model_class, file_name, f, directory)
|
||||||
|
|
||||||
# Traitement différent pour les revues
|
# Traitement différent pour les revues
|
||||||
with open(directory + "/docs/revues.md", "w") as f:
|
with open(os.path.join(directory, 'docs', 'revues.md'), "w") as f:
|
||||||
f.write("# Revues\n\n\n")
|
f.write("# Revues\n\n\n")
|
||||||
|
|
||||||
titles = list(set(obj["title"] for obj in
|
titles = list(set(obj["title"] for obj in
|
||||||
@ -48,11 +51,13 @@ class Command(BaseCommand):
|
|||||||
f.write("\n\n\n")
|
f.write("\n\n\n")
|
||||||
|
|
||||||
# Traitement différent pour les jeux
|
# Traitement différent pour les jeux
|
||||||
with open(directory + "/docs/jeux.md", "w") as f:
|
with open(os.path.join(directory, 'docs', 'jeux.md'), "w") as f:
|
||||||
f.write("# Jeux\n\n\n")
|
f.write("# Jeux\n\n\n")
|
||||||
|
|
||||||
for game in Game.objects.order_by("name").all():
|
for game in Game.objects.order_by("title").all():
|
||||||
f.write(f"## {game.name}\n\n\n")
|
f.write(f"## {game.title}\n\n\n")
|
||||||
|
if hasattr(medium, "isbn"):
|
||||||
|
f.write(f"ISBN : {game.isbn}\n\n")
|
||||||
f.write(f"Durée : {game.duration}\n\n")
|
f.write(f"Durée : {game.duration}\n\n")
|
||||||
f.write(f"Nombre de joueurs : {game.players_min} "
|
f.write(f"Nombre de joueurs : {game.players_min} "
|
||||||
f"- {game.players_max}\n\n")
|
f"- {game.players_max}\n\n")
|
||||||
@ -62,8 +67,54 @@ class Command(BaseCommand):
|
|||||||
f.write(f"Commentaire : {game.comment}\n\n")
|
f.write(f"Commentaire : {game.comment}\n\n")
|
||||||
f.write("\n\n\n")
|
f.write("\n\n\n")
|
||||||
|
|
||||||
|
# Traitement différent pour les bds
|
||||||
|
# Regroupement par le premier caractère
|
||||||
|
titles = list(set(obj["title"] for obj in Comic.objects
|
||||||
|
.values("title").distinct().all()))
|
||||||
|
category = lambda s: s[0].lower() if 'a' <= s[0].lower() <= 'z' else '#'
|
||||||
|
db = {}
|
||||||
|
for title in titles:
|
||||||
|
c = category(title)
|
||||||
|
if c not in db:
|
||||||
|
db[c] = []
|
||||||
|
db[c].append(title)
|
||||||
|
|
||||||
|
for letter, titles in db.items():
|
||||||
|
with open(os.path.join(directory, 'docs', 'bds', f'{letter}.md'), 'w') as f:
|
||||||
|
f.write("# " + str(Comic._meta.verbose_name_plural)
|
||||||
|
.capitalize() + f" - {letter.upper()}\n\n\n")
|
||||||
|
|
||||||
|
titles.sort()
|
||||||
|
|
||||||
|
for title in titles:
|
||||||
|
f.write(f"## {title}\n\n\n")
|
||||||
|
|
||||||
|
for medium in Comic.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")
|
||||||
|
|
||||||
def process_model_class(self, model_class, file_name, f, directory):
|
def process_model_class(self, model_class, file_name, f, directory):
|
||||||
with open(directory + "/docs/" + file_name, "w") as f:
|
with open(os.path.join(directory, 'docs', file_name), "w") as f:
|
||||||
f.write("# " + str(model_class._meta.verbose_name_plural)
|
f.write("# " + str(model_class._meta.verbose_name_plural)
|
||||||
.capitalize() + "\n\n\n")
|
.capitalize() + "\n\n\n")
|
||||||
|
|
||||||
|
23
users/migrations/0046_auto_20211114_1624.py
Normal file
23
users/migrations/0046_auto_20211114_1624.py
Normal file
@ -0,0 +1,23 @@
|
|||||||
|
# Generated by Django 2.2.24 on 2021-11-14 15:24
|
||||||
|
|
||||||
|
from django.db import migrations, models
|
||||||
|
|
||||||
|
|
||||||
|
class Migration(migrations.Migration):
|
||||||
|
|
||||||
|
dependencies = [
|
||||||
|
('users', '0045_auto_20211114_1423'),
|
||||||
|
]
|
||||||
|
|
||||||
|
operations = [
|
||||||
|
migrations.AlterField(
|
||||||
|
model_name='membership',
|
||||||
|
name='date_end',
|
||||||
|
field=models.DateField(verbose_name='start date'),
|
||||||
|
),
|
||||||
|
migrations.AlterField(
|
||||||
|
model_name='membership',
|
||||||
|
name='date_start',
|
||||||
|
field=models.DateField(verbose_name='start date'),
|
||||||
|
),
|
||||||
|
]
|
@ -59,12 +59,12 @@ class User(AbstractUser):
|
|||||||
data : dict
|
data : dict
|
||||||
Dictionary with user data to update.
|
Dictionary with user data to update.
|
||||||
"""
|
"""
|
||||||
self.email = data['email']
|
self.email = data['email'] or ''
|
||||||
self.first_name = data['first_name']
|
self.first_name = data['first_name'] or ''
|
||||||
self.last_name = data['last_name']
|
self.last_name = data['last_name'] or ''
|
||||||
self.phone_number = data['profile']['phone_number']
|
self.phone_number = data['profile']['phone_number'] or ''
|
||||||
self.address = data['profile']['address']
|
self.address = data['profile']['address'] or ''
|
||||||
self.comment = data['profile']['section']
|
self.comment = data['profile']['section'] or ''
|
||||||
|
|
||||||
for membership_dict in data['memberships']:
|
for membership_dict in data['memberships']:
|
||||||
if membership_dict['club'] != 22: # Med
|
if membership_dict['club'] != 22: # Med
|
||||||
@ -88,12 +88,10 @@ class Membership(models.Model):
|
|||||||
)
|
)
|
||||||
|
|
||||||
date_start = models.DateField(
|
date_start = models.DateField(
|
||||||
auto_now_add=True,
|
|
||||||
verbose_name=_('start date'),
|
verbose_name=_('start date'),
|
||||||
)
|
)
|
||||||
|
|
||||||
date_end = models.DateField(
|
date_end = models.DateField(
|
||||||
auto_now_add=True,
|
|
||||||
verbose_name=_('start date'),
|
verbose_name=_('start date'),
|
||||||
)
|
)
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user