Skip to content
Snippets Groups Projects
Unverified Commit 24405010 authored by Ernesto Rico Schmidt's avatar Ernesto Rico Schmidt
Browse files

Removed unused management commands for `program`

parent c1e5dc38
No related branches found
No related tags found
No related merge requests found
from django.core.management.base import NoArgsCommand
from django.db import transaction
from program.models import Show, TimeSlot, Schedule
class Command(NoArgsCommand):
help = 'removes default shows without note'
@transaction.commit_manually
def handle_noargs(self, **options):
default_show = Show.objects.get(pk=1)
try:
TimeSlot.objects.filter(show=default_show, note__isnull=True).delete()
for schedule in Schedule.objects.filter(show=default_show):
if schedule.timeslots.count() == 0:
schedule.delete()
except:
transaction.rollback()
else:
transaction.commit()
\ No newline at end of file
from django.core.management.base import NoArgsCommand
import MySQLdb
from program.models import Host
USER = 'helsinki'
PASSWD = 'helsinki'
DB = 'helsinki'
class Command(NoArgsCommand):
help = 'Import hosts from current program'
def handle_noargs(self, **options):
connection = MySQLdb.connect(user=USER, passwd=PASSWD, db=DB)
cursor = connection.cursor()
cursor.execute("""SELECT DISTINCT macher
FROM sendungen
WHERE letzter_termin > current_date AND macher != '' AND titel NOT LIKE 'Musikprogramm'""")
counter = 0
for row in cursor.fetchall():
for macher in row[0].split(','):
host = Host(name=macher.strip())
host.save()
counter += 1
cursor.close()
connection.close()
self.stdout.write(self.style.SUCCESS, F'{counter} hosts imported')
from django.core.exceptions import ObjectDoesNotExist, MultipleObjectsReturned, ValidationError
from django.core.management.base import NoArgsCommand
from django.utils.html import strip_tags
import MySQLdb
from program.models import Note, Show, TimeSlot
USER = 'helsinki'
PASSWD = 'helsinki'
DB = 'helsinki'
class Command(NoArgsCommand):
help = 'Import notes from current program'
def handle_noargs(self, **options):
connection = MySQLdb.connect(user=USER, passwd=PASSWD, db=DB)
cursor = connection.cursor()
cursor.execute("""SELECT n.titel, n.datum, s.titel, n.notiz
FROM notizen AS n JOIN sendungen AS s ON n.sendung_id=s.id
WHERE n.sendung_id in (SELECT id FROM sendungen WHERE letzter_termin > current_date)""")
counter = 0
for ntitel, datum, stitel, notiz in cursor.fetchall():
ntitel = strip_tags(ntitel) if ntitel else strip_tags(stitel)
stitel = strip_tags(stitel)
notiz = strip_tags(notiz)
if stitel.endswith('(Wiederholung)'):
stitel = stitel[:-15]
if datum:
year, month, day = datum.year, datum.month, datum.day
try:
show = Show.objects.get(name=stitel)
except ObjectDoesNotExist:
self.stdout.write(self.style.WARNING, f'show with name "{stitel}" not found')
else:
try:
timeslot = TimeSlot.objects.get(schedule__show=show, start__year=year, start__month=month,
start__day=day)
except ObjectDoesNotExist:
self.stdout.write(self.style.WARNING, f'no timeslot found for sendung "{stitel}" and datum "{datum}"')
except MultipleObjectsReturned:
self.stdout.write(self.style.WARNING, f'multiple timeslots found for sendung "{stitel}" and datum "{datum}"')
else:
note = Note(timeslot=timeslot, title=ntitel, content=notiz)
try:
note.validate_unique()
except ValidationError:
self.stdout.write(self.style.WARNING, f'note already imported for show "{stitel}" and datum "{datum}"')
else:
try:
note.save()
except:
self.stdout.write(self.style.ERROR, f'could not save note "{ntitel}" for show "{stitel}" and datum "{datum}"')
else:
counter += 1
cursor.close()
connection.close()
self.stdout.write(self.style.SUCCESS, f'{counter} notes imported')
from django.core.exceptions import ObjectDoesNotExist
from django.core.management.base import NoArgsCommand
from django.utils.html import strip_tags
from datetime import time
import MySQLdb
from program.models import Show, Schedule, RRule
USER = 'helsinki'
PASSWD = 'helsinki'
DB = 'helsinki'
RRULES = {
0: RRule.objects.get(pk=1),
7: RRule.objects.get(pk=3),
14: RRule.objects.get(pk=4),
28: RRule.objects.get(pk=5)
}
class Command(NoArgsCommand):
help = 'Import schedules from the current program'
def handle_noargs(self, **options):
connection = MySQLdb.connect(user=USER, passwd=PASSWD, db=DB)
cursor = connection.cursor()
cursor.execute("""SELECT titel, beginn, ende, erster_termin, letzter_termin, rhytmus, termin
FROM sendungen
WHERE letzter_termin > current_date AND titel NOT LIKE 'Musikprogramm' AND titel NOT LIKE '%%(Wiederholung)'""")
counter = 0
for titel, beginn, ende, erster_termin, letzter_termin, rhytmus, termin in cursor.fetchall():
titel = strip_tags(titel)
hours, seconds = divmod(beginn.seconds, 3600)
minutes, seconds = divmod(seconds, 60)
tstart = time(hour=hours, minute=minutes, second=seconds)
hours, seconds = divmod(ende.seconds, 3600)
minutes, seconds = divmod(seconds, 60)
tend = time(hour=hours, minute=minutes, second=seconds)
try:
rrule = RRULES[rhytmus]
try:
show = Show.objects.get(name=titel)
except ObjectDoesNotExist:
self.stdout.write(self.style.NOTICE, f'show with name "{titel}" not found')
else:
schedule = Schedule(rrule=rrule, byweekday=termin, show=show, dstart=erster_termin,
tstart=tstart, tend=tend, until=letzter_termin)
try:
schedule.save()
counter += 1
except:
pass
except KeyError:
self.stdout.write(self.style.NOTICE, f'rhythmus "{rhytmus}" is not supported for sendung "{titel}"')
cursor.execute("""SELECT titel, beginn, ende, erster_termin, letzter_termin, rhytmus, termin
FROM sendungen
WHERE letzter_termin > current_date AND titel LIKE '%%(Wiederholung)'""")
for titel, beginn, ende, erster_termin, letzter_termin, rhytmus, termin in cursor.fetchall():
titel = strip_tags(titel[:-15])
hours, seconds = divmod(beginn.seconds, 3600)
minutes, seconds = divmod(seconds, 60)
tstart = time(hour=hours, minute=minutes, second=seconds)
hours, seconds = divmod(ende.seconds, 3600)
minutes, seconds = divmod(seconds, 60)
tend = time(hour=hours, minute=minutes, second=seconds)
try:
rrule = RRULES[rhytmus]
try:
show = Show.objects.get(name=titel)
except ObjectDoesNotExist:
self.stdout.write(self.style.WARNING, f'show with name "{titel}" not found')
else:
schedule = Schedule(rrule=rrule, byweekday=termin, show=show, dstart=erster_termin,
tstart=tstart, tend=tend, until=letzter_termin, is_repetition=True)
try:
schedule.save()
counter += 1
except:
pass
except KeyError:
self.stdout.write(self.style.WARNING, f'rhythmus "{rhytmus}" is not supported for sendung "{titel}"')
cursor.close()
connection.close()
self.stdout.write(self.style.SUCCESS, f'{counter} schedules imported')
from django.core.exceptions import ObjectDoesNotExist, MultipleObjectsReturned
from django.core.management.base import NoArgsCommand
from django.template.defaultfilters import slugify
from django.utils.html import strip_tags
import MySQLdb
from program.models import BroadcastFormat, Host, Show
USER = 'helsinki'
PASSWD = 'helsinki'
DB = 'helsinki'
TALK = BroadcastFormat.objects.get(pk=1)
class Command(NoArgsCommand):
help = 'Import shows from the current program'
def handle_noargs(self, **options):
connection = MySQLdb.connect(user=USER, passwd=PASSWD, db=DB)
cursor = connection.cursor()
cursor.execute("""SELECT titel, beschreibung, web, macher
FROM sendungen
WHERE letzter_termin > current_date AND titel NOT LIKE 'Musikprogramm' AND titel NOT LIKE '%%(Wiederholung)'
ORDER BY titel, beginn, ende""")
counter = 0
for titel, beschreibung, web, macher in cursor.fetchall():
titel = strip_tags(titel)
beschreibung = strip_tags(beschreibung)
slug = slugify(titel)
hosts = []
for macher in macher.split(','):
macher = macher.strip()
try:
host = Host.objects.get(name=macher)
except MultipleObjectsReturned:
self.stdout.write(self.style.NOTICE, f'multiple hosts with name "{macher}" found')
except ObjectDoesNotExist:
self.stdout.write(self.style.NOTICE, f'host with name "{macher}" not found')
else:
hosts.append(host)
try:
show = Show.objects.get(name=titel)
self.stdout.write(self.style.NOTICE, f'sendung "{titel}" already imported as show "{show}"')
except ObjectDoesNotExist:
show = Show(broadcastformat=TALK, name=titel, slug=slug, short_description='FIXME',
description=beschreibung)
try:
show.save()
counter += 1
except:
self.stdout.write(self.style.NOTICE, f'sendung "{titel}" could not be imported')
else:
for h in hosts:
show.hosts.add(h)
show.save()
cursor.close()
connection.close()
self.stdout.write(self.style.SUCCESS, f'{counter} shows imported')
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment