Пример #1
0
    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)))
Пример #2
0
    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)))
Пример #3
0
    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)))
Пример #4
0
 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)