mirror of
https://github.com/ae-utbm/sith.git
synced 2025-07-12 21:09:24 +00:00
Compare commits
1 Commits
master
...
promo_add_
Author | SHA1 | Date | |
---|---|---|---|
5b57f75b4e |
41
core/management/commands/add_promo_logo.py
Normal file
41
core/management/commands/add_promo_logo.py
Normal file
@ -0,0 +1,41 @@
|
||||
import pathlib
|
||||
|
||||
from django.apps import apps
|
||||
from django.core.management.base import BaseCommand
|
||||
from PIL import Image, UnidentifiedImageError
|
||||
|
||||
|
||||
class Command(BaseCommand):
|
||||
def add_arguments(self, parser):
|
||||
parser.add_argument("number", type=int)
|
||||
parser.add_argument("path", type=pathlib.Path)
|
||||
parser.add_argument("-f", "--force", action="store_true")
|
||||
|
||||
def handle(self, number: int, path: pathlib.Path, force: int, *args, **options):
|
||||
if not path.exists() or path.is_dir():
|
||||
self.stderr.write(f"{path} is not a file or does not exist")
|
||||
return
|
||||
|
||||
dest_path = (
|
||||
pathlib.Path(apps.get_app_config("core").path)
|
||||
/ "static"
|
||||
/ "core"
|
||||
/ "img"
|
||||
/ f"promo_{number}.png"
|
||||
)
|
||||
|
||||
if dest_path.exists() and not force:
|
||||
over = input("File already exists, do you want to overwrite it? (y/N):")
|
||||
if over.lower() != "y":
|
||||
self.stdout.write("exiting")
|
||||
return
|
||||
try:
|
||||
im = Image.open(path)
|
||||
im.resize((120, 120), resample=Image.Resampling.LANCZOS).save(
|
||||
dest_path, format="PNG"
|
||||
)
|
||||
self.stdout.write(
|
||||
f"Promo logo moved and resized successfully at {dest_path}"
|
||||
)
|
||||
except UnidentifiedImageError:
|
||||
self.stderr.write("image cannot be opened and identified.")
|
@ -12,6 +12,15 @@ nouveau logo d'une promo. C'est un processus manuel.
|
||||
de faire cette opération manuellement, ça prend quelques
|
||||
minutes et on est certain de la qualité à la fin.
|
||||
|
||||
### avec une commande django
|
||||
```bash
|
||||
./manage.py add_promo_logo numero_de_promo chemin_dacces_du_logo
|
||||
```
|
||||
options:
|
||||
|
||||
* `--force/-f` pour automatiquement écraser les logos de promo avec le même nom.
|
||||
|
||||
### manuellement
|
||||
Les logos de promo sont à manuellement ajouter dans le projet.
|
||||
Ils se situent dans le dossier `core/static/core/img/`.
|
||||
|
||||
|
Reference in New Issue
Block a user