11import json
22import os
3+ import sys
34from time import sleep
45import random
56import threading
1516 InvalidGrantError ,
1617 UnauthorizedClientError )
1718from fet_api_to_gcal import config
18- from fet_api_to_gcal .common .utils import getDate , login_required , check_google_calendar_id
19+ from fet_api_to_gcal .common .utils import getDate , login_required , check_google_calendar_id , perror
1920from werkzeug .utils import secure_filename
2021
2122app = flask .Flask (__name__ )
@@ -51,6 +52,8 @@ def allowed_file(filename):
5152
5253from fet_api_to_gcal .models import (Calendar , Resource , Teacher , events__log ,
5354 Std_mail , import_oprtation )
55+ from pprint import pprint
56+ import sys
5457
5558
5659VERIFYING_THREADS = {}
@@ -298,6 +301,7 @@ def logout():
298301
299302@app .errorhandler (InvalidClientIdError )
300303def token_expired (_ ):
304+ import pdb ; pdb .set_trace ()
301305 del current_app .blueprints ['google' ].token
302306 flash ('Your session has expired. Please submit the request again' ,
303307 'danger' )
@@ -518,7 +522,7 @@ def import_csv_to_calendar_api():
518522 return redirect (request .url )
519523 file = request .files ['file' ]
520524 if file .filename == "" :
521- flash ("No file selected for uploading " , category = 'danger' )
525+ flash ("No file selected for upload " , category = 'danger' )
522526 return redirect (request .url )
523527 if file and allowed_file (file .filename ):
524528 filename = secure_filename (file .filename )
@@ -538,18 +542,37 @@ def import_csv_to_calendar_api():
538542 max_events = max_events ,
539543 events_freq = events_freq )
540544 for event in all_events :
541- for std_mail in event ["attendees" ][1 :- 1 ]:
545+ resource = None
546+ teachers = []
547+ std_sets_emails = []
548+ if "resource" in event ["attendees" ][- 1 ].keys ():
549+ resource = event ["attendees" ][- 1 ]
550+ event ["attendees" ].remove (resource )
551+
552+ for ev_att in event ["attendees" ]:
553+ if Teacher .query .filter_by (teacher_email = ev_att ["email" ]).first ():
554+ teachers .append (ev_att )
555+ else :
556+ std_sets_emails .append (ev_att )
557+
558+ event ["attendees" ].clear ()
559+ event ["attendees" ].extend (teachers )
560+ if resource is not None :
561+ event ["attendees" ].append (resource )
562+ for std_mail in std_sets_emails :
542563 cal_rec = Calendar .query .filter_by (
543564 std_email = std_mail ["email" ]).first ()
544565 if cal_rec :
545566 calendar_id = cal_rec .calendar_id_google
546- event ["attendees" ].remove (std_mail )
567+ #event["attendees"].remove(std_mail)
568+ #pprint(event)
547569 else :
548570 print ("Calendar does not exist" )
549- print (event )
571+ pprint (event )
550572 print ("_________" )
551573 continue
552-
574+ #pprint(event)
575+ #import pdb; pdb.set_trace()
553576 resp = google .post (
554577 "/calendar/v3/calendars/{}/events" .format (calendar_id ),
555578 json = event ,
@@ -776,11 +799,11 @@ def csv_tt_to_json_events(
776799 events_freq = 1 ,
777800 max_events = None ):
778801 dates = {
779- "1CPI" : "2019/11/17 " , # needs to be changed!
780- "2CPI" : "2019/12/01 " , # needs to be changed!
781- "1CS" : "2019/11/03 " , # needs to be changed!
782- "2CS" : "2019/10/20 " , # needs to be changed!
783- "3CS" : "2019/10/20 " # needs to be changed!
802+ "1CPI" : "2020/02/23 " , # needs to be changed!
803+ "2CPI" : "2020/02/23 " , # needs to be changed!
804+ "1CS" : "2020/02/23 " , # needs to be changed!
805+ "2CS" : "2020/02/23 " , # needs to be changed!
806+ "3CS" : "2020/02/23 " # needs to be changed!
784807 }
785808
786809 timezone = "Africa/Algiers"
@@ -835,7 +858,8 @@ def csv_tt_to_json_events(
835858 __gevent__ ["attendees" ].append (
836859 {"email" : teacher .teacher_email })
837860 else :
838- print ("Teacher {} not found" .format (teacher_name ))
861+ perror ("Teacher {} not found (event index: {})" .format (teacher_name , event_inx ))
862+
839863 # students
840864 if event___old ["std_set" ] == "" :
841865 continue
@@ -856,7 +880,8 @@ def csv_tt_to_json_events(
856880 "email" : res .resource_email ,
857881 "resource" : True
858882 })
859-
883+ else :
884+ perror ("Room empty in event index : {}" .format (event_inx ))
860885 # recurrence rule
861886 __gevent__ ["recurrence" ] = [
862887 "RRULE:FREQ=WEEKLY;COUNT=" + str (events_freq )
0 commit comments