def handle(self, *args, **options): from pretalx.schedule.utils import process_frab path = options.get('path') tree = ET.parse(path) root = tree.getroot() event_data = root.find('conference') event = Event.objects.filter(slug__iexact=event_data.find('acronym').text).first() if not event: event = self.create_event(event_data) team = event.organiser.teams.filter( can_create_events=True, can_change_teams=True, can_change_organiser_settings=True, can_change_event_settings=True, can_change_submissions=True, ).first() if not team: team = Team.objects.create( name=str(event.name) + ' Organisers', organiser=event.organiser, all_events=True, can_create_events=True, can_change_teams=True, can_change_organiser_settings=True, can_change_event_settings=True, can_change_submissions=True, ) for user in User.objects.filter(is_administrator=True): team.members.add(user) team.save() self.stdout.write(self.style.SUCCESS(process_frab(root, event)))
def handle(self, *args, **options): from pretalx.schedule.utils import process_frab path = options.get('path') tree = ET.parse(path) root = tree.getroot() event_data = root.find('conference') event = Event.objects.filter( slug__iexact=event_data.find('acronym').text).first() if not event: event = Event( name=event_data.find('title').text, slug=event_data.find('acronym').text, date_from=datetime.strptime( event_data.find('start').text, '%Y-%m-%d').date(), date_to=datetime.strptime( event_data.find('end').text, '%Y-%m-%d').date(), ) event.save() for user in User.objects.filter(is_administrator=True): EventPermission.objects.get_or_create(event=event, user=user, is_orga=True) self.stdout.write(self.style.SUCCESS(process_frab(root, event)))
def handle(self, *args, **options): from pretalx.schedule.utils import process_frab path = options.get("path") tree = ET.parse(path) root = tree.getroot() event_data = root.find("conference") event = Event.objects.filter( slug__iexact=event_data.find("acronym").text).first() with scopes_disabled(): if not event: event = self.create_event(event_data) team = event.organiser.teams.filter( can_create_events=True, can_change_teams=True, can_change_organiser_settings=True, can_change_event_settings=True, can_change_submissions=True, ).first() or self.create_team( str(event.name) + " Organisers", event.organiser) for user in User.objects.filter(is_administrator=True): team.members.add(user) team.save() self.stdout.write(self.style.SUCCESS(process_frab(root, event)))
def form_valid(self, form): from pretalx.schedule.utils import process_frab try: tree = ET.parse('path') root = tree.getroot() except Exception as e: messages.error(self.request, _('Unable to parse XML file: ') + str(e)) try: with transaction.atomic(): messages.success(self.request, process_frab(root, self.request.event)) return super().form_valid(form) except Exception as e: messages.error(self.request, _('Unable to release new schedule: ' + str(e))) return super().form_invalid(form)