Files
@ f56ce514599a
Branch filter:
Location: symposion_app/symposion/sponsorship/management/commands/export_sponsors_data.py - annotation
f56ce514599a
2.5 KiB
text/x-python
Merge pull request #18 from lca2017/chrisjrn/017-cfp-models-and-forms
CFP models and forms
CFP models and forms
fbf356b335de fbf356b335de fbf356b335de fbf356b335de fbf356b335de fbf356b335de fbf356b335de fbf356b335de fbf356b335de fbf356b335de fbf356b335de fbf356b335de fbf356b335de fbf356b335de fbf356b335de fbf356b335de fbf356b335de fbf356b335de fbf356b335de fbf356b335de fbf356b335de fbf356b335de fbf356b335de fbf356b335de fbf356b335de fbf356b335de fbf356b335de fbf356b335de fbf356b335de fbf356b335de fbf356b335de fbf356b335de fbf356b335de fbf356b335de fbf356b335de fbf356b335de fbf356b335de fbf356b335de fbf356b335de fbf356b335de fbf356b335de fbf356b335de fbf356b335de fbf356b335de fbf356b335de fbf356b335de fbf356b335de fbf356b335de fbf356b335de fbf356b335de fbf356b335de fbf356b335de fbf356b335de fbf356b335de fbf356b335de fbf356b335de fbf356b335de fbf356b335de fbf356b335de fbf356b335de fbf356b335de fbf356b335de fbf356b335de fbf356b335de fbf356b335de fbf356b335de fbf356b335de fbf356b335de fbf356b335de fbf356b335de fbf356b335de fbf356b335de fbf356b335de fbf356b335de fbf356b335de fbf356b335de fbf356b335de | import csv
import os
import shutil
import zipfile
from contextlib import closing
from django.core.management.base import BaseCommand
from django.template.defaultfilters import slugify
from sotmjp.sponsorship.models import Sponsor
def zipdir(basedir, archivename):
assert os.path.isdir(basedir)
with closing(zipfile.ZipFile(archivename, "w", zipfile.ZIP_DEFLATED)) as z:
for root, dirs, files in os.walk(basedir):
#NOTE: ignore empty directories
for fn in files:
absfn = os.path.join(root, fn)
zfn = absfn[len(basedir) + len(os.sep):] # XXX: relative path
z.write(absfn, zfn)
class Command(BaseCommand):
def handle(self, *args, **options):
try:
os.makedirs(os.path.join(os.getcwd(), "build"))
except:
pass
csv_file = csv.writer(
open(os.path.join(os.getcwd(), "build", "sponsors.csv"), "wb")
)
csv_file.writerow(["Name", "URL", "Level", "Description"])
for sponsor in Sponsor.objects.all():
path = os.path.join(os.getcwd(), "build", slugify(sponsor.name))
try:
os.makedirs(path)
except:
pass
data = {
"name": sponsor.name,
"url": sponsor.external_url,
"level": sponsor.level.name,
"description": "",
}
for sponsor_benefit in sponsor.sponsor_benefits.all():
if sponsor_benefit.benefit_id == 2:
data["description"] = sponsor_benefit.text
if sponsor_benefit.benefit_id == 1:
if sponsor_benefit.upload:
data["ad"] = sponsor_benefit.upload.path
if sponsor_benefit.benefit_id == 7:
if sponsor_benefit.upload:
data["logo"] = sponsor_benefit.upload.path
if "ad" in data:
ad_path = data.pop("ad")
shutil.copy(ad_path, path)
if "logo" in data:
logo_path = data.pop("logo")
shutil.copy(logo_path, path)
csv_file.writerow([
data["name"].encode("utf-8"),
data["url"].encode("utf-8"),
data["level"].encode("utf-8"),
data["description"].encode("utf-8")
])
zipdir(
os.path.join(os.getcwd(), "build"),
os.path.join(os.getcwd(), "sponsors.zip"))
|