예제 #1
0
def processAgendasForYears(years, committee_name):
    try:
        committee = Committee.objects.get(name=committee_name)
    except ObjectDoesNotExist:
        committee = Committee(name="Santa Monica City Council",
                              email="*****@*****.**",
                              cutoff_offset_days=0,
                              cutoff_hour=11,
                              cutoff_minute=59,
                              location_lat=34.024212,
                              location_lng=-118.496475,
                              location_tz="America/Los_Angeles")
        committee.save()
    for year in years:
        agenda_values = get_data(year=year)
        if agenda_values is None:
            print(f"No agendas/items for {year}")
            continue
        for time, agenda in agenda_values.items():
            if len(agenda) > 0:
                found_agenda = Agenda.objects.filter(meeting_time=time).first()
                if found_agenda is None:
                    found_agenda = Agenda(meeting_time=time)
                    found_agenda.committee = committee
                    found_agenda.meeting_id = agenda[0]['MeetingID']
                for ag_item in agenda:
                    save_agendaitem(ag_item, found_agenda, time)
                found_agenda.save()
예제 #2
0
 def handle(self, *args, **options):
     try:
         committee = Committee.objects.get(name="Santa Monica City Council")
     except ObjectDoesNotExist:
         Committee(name="Santa Monica City Council",
                   email="*****@*****.**").save()
         committee = Committee.objects.get(name="Santa Monica City Council")
     years = [2016, 2017, 2018]
     for year in years:
         agenda_values = get_data(year=year)
         for time, agenda in agenda_values.items():
             if len(agenda) > 0:
                 found_agenda = Agenda.objects.filter(
                     meeting_time=time).first()
                 if found_agenda is None:
                     found_agenda = Agenda(meeting_time=time)
                     found_agenda.committee = committee
                     found_agenda.meeting_id = agenda[0]['MeetingID']
                 for ag_item in agenda:
                     self.save_agendaitem(ag_item, found_agenda, time)
                 found_agenda.save()
예제 #3
0
def processAgendasForYears(years, committee_name):
    try:
        committee = Committee.objects.get(name=committee_name)
    except ObjectDoesNotExist:
        committee = Committee(name="Santa Monica City Council", email="*****@*****.**",
                              cutoff_offset_days=0, cutoff_hour=11, cutoff_minute=59, location_lat=34.024212, location_lng=-118.496475, location_tz="America/Los_Angeles")
        committee.save()
    for year in years:
        agenda_values = get_data(year=year)
        if agenda_values is None:
            print(f"No agendas/items for {year}")
            continue
        for time, agenda in agenda_values.items():
            if len(agenda) > 0:
                found_agenda = Agenda.objects.filter(
                    meeting_time=time).first()
                print(found_agenda)
                if found_agenda is None:
                    found_agenda = Agenda(meeting_time=time)
                    found_agenda.committee = committee
                    found_agenda.meeting_id = agenda[0]['MeetingID']
                    dt = getLocationBasedDate(found_agenda.meeting_time, committee.cutoff_offset_days,
                        committee.cutoff_hour, committee.cutoff_minute, committee.location_tz)
                    dt = dt + timedelta(minutes=5)
                    log.error(f"scheduling pdf processing for: {dt} for: {committee.name}")
                    dt_utc = datetime.fromtimestamp(dt.timestamp(), tz=pytz.timezone('UTC'))
                    exists = r.get(f"{committee.name}-{found_agenda.meeting_time}")
                    found_agenda.save()
                    if exists is None:
                        r.set(f"{committee.name}-{found_agenda.meeting_time}", True, ex=3*60)
                        schedule_process_pdf.apply_async(
                            (committee.name, found_agenda.meeting_id), eta=dt_utc)
                        log.error(f"scheduled pdf processing")
                    else:
                        log.error(f'{committee.name} {found_agenda.meeting_id} already queued for pdf in utils')
                for ag_item in agenda:
                    save_agendaitem(ag_item, found_agenda, time)
                found_agenda.save()