First version of an icon import script (cf #201)
This commit is contained in:
parent
fd8e9aa0bb
commit
f6f2d8dca9
6 changed files with 109 additions and 0 deletions
1
.gitignore
vendored
1
.gitignore
vendored
|
@ -5,3 +5,4 @@ umap/settings/local/*
|
||||||
docs/_build
|
docs/_build
|
||||||
umap/remote_static
|
umap/remote_static
|
||||||
.idea
|
.idea
|
||||||
|
tmp/*
|
||||||
|
|
31
osmic-white.yaml
Normal file
31
osmic-white.yaml
Normal file
|
@ -0,0 +1,31 @@
|
||||||
|
input_dirs:
|
||||||
|
- "accommodation"
|
||||||
|
- "administration"
|
||||||
|
- "amenity"
|
||||||
|
- "barrier"
|
||||||
|
- "eat-drink"
|
||||||
|
- "emergency"
|
||||||
|
- "energy"
|
||||||
|
- "health"
|
||||||
|
- "money"
|
||||||
|
- "nature"
|
||||||
|
- "outdoor"
|
||||||
|
- "religious"
|
||||||
|
- "shop"
|
||||||
|
- "sports"
|
||||||
|
- "tourism"
|
||||||
|
- "transport"
|
||||||
|
|
||||||
|
output: "tmp/white"
|
||||||
|
empty_output: true
|
||||||
|
format: "png"
|
||||||
|
subdirs: false
|
||||||
|
|
||||||
|
global_style:
|
||||||
|
padding: 4
|
||||||
|
fill: "#ededed"
|
||||||
|
|
||||||
|
halo:
|
||||||
|
fill: "#444444"
|
||||||
|
width: 1
|
||||||
|
opacity: 0.3
|
31
osmic.yaml
Normal file
31
osmic.yaml
Normal file
|
@ -0,0 +1,31 @@
|
||||||
|
input_dirs:
|
||||||
|
- "accommodation"
|
||||||
|
- "administration"
|
||||||
|
- "amenity"
|
||||||
|
- "barrier"
|
||||||
|
- "eat-drink"
|
||||||
|
- "emergency"
|
||||||
|
- "energy"
|
||||||
|
- "health"
|
||||||
|
- "money"
|
||||||
|
- "nature"
|
||||||
|
- "outdoor"
|
||||||
|
- "religious"
|
||||||
|
- "shop"
|
||||||
|
- "sports"
|
||||||
|
- "tourism"
|
||||||
|
- "transport"
|
||||||
|
|
||||||
|
output: "tmp/grey"
|
||||||
|
empty_output: true
|
||||||
|
format: "png"
|
||||||
|
subdirs: false
|
||||||
|
|
||||||
|
global_style:
|
||||||
|
padding: 4
|
||||||
|
fill: "#444444"
|
||||||
|
|
||||||
|
halo:
|
||||||
|
fill: "#ededed"
|
||||||
|
width: 1
|
||||||
|
opacity: 0.3
|
0
umap/management/__init__.py
Normal file
0
umap/management/__init__.py
Normal file
0
umap/management/commands/__init__.py
Normal file
0
umap/management/commands/__init__.py
Normal file
46
umap/management/commands/import_pictograms.py
Normal file
46
umap/management/commands/import_pictograms.py
Normal file
|
@ -0,0 +1,46 @@
|
||||||
|
import os
|
||||||
|
|
||||||
|
from django.core.files import File
|
||||||
|
from django.core.management.base import BaseCommand
|
||||||
|
|
||||||
|
from leaflet_storage.models import Pictogram
|
||||||
|
|
||||||
|
|
||||||
|
class Command(BaseCommand):
|
||||||
|
help = 'Import pictograms from a folder'
|
||||||
|
|
||||||
|
def add_arguments(self, parser):
|
||||||
|
parser.add_argument('path')
|
||||||
|
parser.add_argument('--attribution', required=True,
|
||||||
|
help='Attribution of the imported pictograms')
|
||||||
|
parser.add_argument('--suffix',
|
||||||
|
help='Optionnal suffix to add to each name')
|
||||||
|
parser.add_argument('--force', action='store_true',
|
||||||
|
help='Update picto if it already exists.')
|
||||||
|
|
||||||
|
def handle(self, *args, **options):
|
||||||
|
path = options['path']
|
||||||
|
attribution = options['attribution']
|
||||||
|
suffix = options['suffix']
|
||||||
|
force = options['force']
|
||||||
|
for filename in os.listdir(path):
|
||||||
|
if filename.endswith("-24.png"):
|
||||||
|
name = self.extract_name(filename)
|
||||||
|
if suffix:
|
||||||
|
name = '{name}{suffix}'.format(name=name, suffix=suffix)
|
||||||
|
picto = Pictogram.objects.filter(name=name).last()
|
||||||
|
if picto:
|
||||||
|
if not force:
|
||||||
|
self.stdout.write(u"⚠ Pictogram with name '{name}' already exists. Skipping.".format(name=name)) # noqa
|
||||||
|
continue
|
||||||
|
else:
|
||||||
|
picto = Pictogram()
|
||||||
|
picto.name = name
|
||||||
|
filepath = os.path.join(path, filename)
|
||||||
|
with open(filepath, 'rb') as f:
|
||||||
|
picto.attribution = attribution
|
||||||
|
picto.pictogram.save(filename, File(f), save=True)
|
||||||
|
self.stdout.write(u"✔ Imported pictogram {filename}.".format(filename=filename)) # noqa
|
||||||
|
|
||||||
|
def extract_name(self, filename):
|
||||||
|
return filename[:-7].replace('-', ' ')
|
Loading…
Reference in a new issue