def import_events(self, options): self.stdout.write(self.style.SUCCESS("Import events started")) bhd = FestivalPage.objects.order_by("pk").all()[0] khd = FestivalPage.objects.order_by("pk").all()[1] parent = EventIndexPage.objects.get() path = os.path.join(options["csv_dir"], "events.csv") with open(path, "r", newline="") as file: reader = csv.DictReader(file) for i, row in enumerate(reader, start=1): parent.add_child(instance=Event( event_id=row["event_id"], title=row["title"], category=Category.objects.get(title=row["category"]), date_and_time=datetime.fromisoformat(row["date_and_time"]), location=Location.objects.get(title=row["location"]), video_url=row["video_url"], ticket_url=row["ticket_url"], show_on_festivalpage=row["show_on_festivalpage"], icon=self.icon(row["icon"]), related_festival=bhd if row["related_festival"] == "bhd" else khd, speakers=Speaker.objects.filter( speaker_id__in=row["speakers"]. split(",") if row["speakers"] else []), wordpress_url=row["wordpress_url"], short_overview=row["short_overview"], description=row["description"], )) self.stdout.write( self.style.SUCCESS(f"Import events finished - {i} events"))
def import_events(self, reader, options): self.stdout.write(self.style.SUCCESS("Importing events")) events_page = EventIndexPage.objects.get() for row in reader: # bulk_create doesn't call save() method try: if row["illustration"]: illustration = Image.objects.get(title=row["illustration"]) else: illustration = None e = Event( title=row["post_title"], short_overview=row["overview"], description=row["post_content"], date_and_time=datetime.fromtimestamp( int(row["datetime"]), pytz.timezone("Europe/Bratislava")), location=(Location.objects.get( title=row["location"].strip().lower())), video_url=self.video_url(row["youtube_link"]), # ticket_url=row["tickets_button_url"], category=Category.objects.get(title=row["topic"]), icon=illustration, speakers=Speaker.objects.filter( wordpress_id__in=row["speakers"]. split(",") if row["speakers"] else []).all(), ) events_page.add_child(instance=e) e.save_revision().publish() self.stdout.write(f"{e.pk},{e.event_id},{row['ID']},{e.title}") except ObjectDoesNotExist as e: raise self.stdout.write(self.style.SUCCESS("Events imported"))
def add_event(code): #todo: import this function from isa_website/views new_event = Event(api_url=api_url, event_start=start_time, title=api_object['name']['html'], event_url=api_object['url'], event_code=code) new_event.save()
def add_event(request): # TODO: Modify to store timezone _event = json.loads(request.GET.get("event")) category, created = Category.objects.get_or_create( name=_event.get("category")) print(_event["calendarId"]) task_authorization = TaskAuthorization.objects.get( charge_code=_event["calendarId"]) temp = { "id": _event["id"], "title": _event["title"], "isAllDay": _event["isAllDay"], "start": datetime.fromisoformat(_event["start"]["_date"].replace("Z", "")), "end": datetime.fromisoformat(_event["end"]["_date"].replace("Z", "")), "category": category, "dueDateClass": _event["dueDateClass"], # "task_authorization": task_authorization, # "charge_code": _event[""], # "location":_event["location"], # "notes": _event[""], } temp["delta_time"] = (temp["end"] - temp["start"]).total_seconds() / 60 / 60. task_authorization.hours_spent += temp["delta_time"] task_authorization.hours_remaining -= temp["delta_time"] task_authorization.hours_percentage = ( task_authorization.hours_spent / task_authorization.hours_allocated) * 100.0 temp["task_authorization"] = task_authorization task_authorization.save() if request.user.is_authenticated: temp["user"] = request.user event = Event(**temp) print(f"Create Event ({request.user}): {_event['id']}") event.save() return JsonResponse({"response": "Recieved"})