mirror of
https://github.com/GAM-team/GAM.git
synced 2026-07-03 20:31:35 +00:00
Working location update (not public)
This commit is contained in:
@@ -47750,34 +47750,33 @@ def printShowCalendarEvents(users):
|
|||||||
if csvPF:
|
if csvPF:
|
||||||
csvPF.writeCSVfile('Calendar Events')
|
csvPF.writeCSVfile('Calendar Events')
|
||||||
|
|
||||||
def getWorkingLocationDate(dateType, dateList):
|
def getWorkingLocationDateTime(dateType, dateList):
|
||||||
|
if dateType == 'timerange':
|
||||||
|
startTime = getTimeOrDeltaFromNow(returnDateTime=True)[0]
|
||||||
|
endTime = getTimeOrDeltaFromNow(returnDateTime=True)[0]
|
||||||
|
dateList.append({'type': dateType, 'first': startTime, 'last': endTime, 'ulast': endTime})
|
||||||
|
return
|
||||||
firstDate = getYYYYMMDD(minLen=1, returnDateTime=True).replace(tzinfo=GC.Values[GC.TIMEZONE])
|
firstDate = getYYYYMMDD(minLen=1, returnDateTime=True).replace(tzinfo=GC.Values[GC.TIMEZONE])
|
||||||
if dateType == 'range':
|
if dateType == 'range':
|
||||||
lastDate = getYYYYMMDD(minLen=1, returnDateTime=True).replace(tzinfo=GC.Values[GC.TIMEZONE])
|
lastDate = getYYYYMMDD(minLen=1, returnDateTime=True).replace(tzinfo=GC.Values[GC.TIMEZONE])
|
||||||
deltaDay = datetime.timedelta(days=1)
|
deltaDay = datetime.timedelta(days=1)
|
||||||
deltaWeek = datetime.timedelta(weeks=1)
|
deltaWeek = datetime.timedelta(weeks=1)
|
||||||
if dateType == 'date':
|
if dateType == 'date':
|
||||||
dateList.append({'first': firstDate, 'last': firstDate+deltaDay,
|
dateList.append({'type': dateType, 'first': firstDate, 'last': firstDate+deltaDay,
|
||||||
'ulast': firstDate, 'udelta': deltaDay})
|
'ulast': firstDate, 'udelta': deltaDay})
|
||||||
elif dateType == 'range':
|
elif dateType == 'range':
|
||||||
dateList.append({'first': firstDate, 'last': lastDate+deltaDay,
|
dateList.append({'type': dateType, 'first': firstDate, 'last': lastDate+deltaDay,
|
||||||
'ulast': lastDate, 'udelta': deltaDay})
|
'ulast': lastDate, 'udelta': deltaDay})
|
||||||
elif dateType == 'daily':
|
elif dateType == 'daily':
|
||||||
argRepeat = getInteger(minVal=1, maxVal=366)
|
argRepeat = getInteger(minVal=1, maxVal=366)
|
||||||
dateList.append({'first': firstDate, 'last': firstDate+datetime.timedelta(days=argRepeat),
|
dateList.append({'type': dateType, 'first': firstDate, 'last': firstDate+datetime.timedelta(days=argRepeat),
|
||||||
'ulast': firstDate+datetime.timedelta(days=argRepeat), 'udelta': deltaDay})
|
'ulast': firstDate+datetime.timedelta(days=argRepeat), 'udelta': deltaDay})
|
||||||
else: #weekly
|
else: #weekly
|
||||||
argRepeat = getInteger(minVal=1, maxVal=52)
|
argRepeat = getInteger(minVal=1, maxVal=52)
|
||||||
dateList.append({'first': firstDate, 'last': firstDate+deltaDay, 'pdelta': deltaWeek, 'repeats': argRepeat,
|
dateList.append({'type': dateType, 'first': firstDate, 'last': firstDate+deltaDay, 'pdelta': deltaWeek, 'repeats': argRepeat,
|
||||||
'ulast': firstDate+datetime.timedelta(weeks=argRepeat), 'udelta': deltaWeek})
|
'ulast': firstDate+datetime.timedelta(weeks=argRepeat), 'udelta': deltaWeek})
|
||||||
|
|
||||||
def getWorkingLocationTimeRange(timeList):
|
WORKING_LOCATION_DATETIME_CHOICES = {'date', 'range', 'daily', 'weekly', 'timerange'}
|
||||||
startTime = getEventTime()
|
|
||||||
endTime = getEventTime()
|
|
||||||
timeList.append({'start': startTime, 'end': endTime})
|
|
||||||
|
|
||||||
WORKING_LOCATION_DATE_CHOICES = {'date', 'range', 'daily', 'weekly'}
|
|
||||||
WORKING_LOCATION_TIME_CHOICES = {'timerange'}
|
|
||||||
WORKING_LOCATION_CHOICE_MAP = {
|
WORKING_LOCATION_CHOICE_MAP = {
|
||||||
'custom': 'customLocation',
|
'custom': 'customLocation',
|
||||||
'home': 'homeOffice',
|
'home': 'homeOffice',
|
||||||
@@ -47795,7 +47794,7 @@ def _showCalendarWorkingLocation(primaryEmail, calId, eventEntityType, event, k,
|
|||||||
showJSON(None, event, skipObjects, EVENT_TIME_OBJECTS)
|
showJSON(None, event, skipObjects, EVENT_TIME_OBJECTS)
|
||||||
Ind.Decrement()
|
Ind.Decrement()
|
||||||
|
|
||||||
# gam <UserTypeEntity> update workinglocation
|
# gam <UserTypeEntity> create workinglocation
|
||||||
# home|
|
# home|
|
||||||
# custom <String>
|
# custom <String>
|
||||||
# office <String> [building|buildingid <String>] [floor|floorname <String>]
|
# office <String> [building|buildingid <String>] [floor|floorname <String>]
|
||||||
@@ -47805,102 +47804,175 @@ def _showCalendarWorkingLocation(primaryEmail, calId, eventEntityType, event, k,
|
|||||||
# (daily yyyy-mm-dd N)|
|
# (daily yyyy-mm-dd N)|
|
||||||
# (weekly yyyy-mm-dd N)|
|
# (weekly yyyy-mm-dd N)|
|
||||||
# (timerange <Time> <Time>))+
|
# (timerange <Time> <Time>))+
|
||||||
def updateWorkingLocation(users):
|
def createWorkingLocation(users):
|
||||||
body = {'start': {'date': None}, 'end': {'date': None}}
|
body = {'start': {'date': None}, 'end': {'date': None}}
|
||||||
calId = 'primary'
|
calId = 'primary'
|
||||||
dateList = []
|
dateList = []
|
||||||
timeList = []
|
location = getWorkingLocationProperties(body)
|
||||||
location = getWorkingLocationProperties(body)
|
|
||||||
while Cmd.ArgumentsRemaining():
|
while Cmd.ArgumentsRemaining():
|
||||||
myarg = getArgument()
|
myarg = getArgument()
|
||||||
if myarg in WORKING_LOCATION_DATE_CHOICES:
|
if myarg in WORKING_LOCATION_DATETIME_CHOICES:
|
||||||
getWorkingLocationDate(myarg, dateList)
|
getWorkingLocationDateTime(myarg, dateList)
|
||||||
elif myarg in WORKING_LOCATION_TIME_CHOICES:
|
|
||||||
getWorkingLocationTimeRange(timeList)
|
|
||||||
elif myarg == 'json':
|
elif myarg == 'json':
|
||||||
body.update(getJSON([]))
|
body.update(getJSON([]))
|
||||||
else:
|
else:
|
||||||
unknownArgumentExit()
|
unknownArgumentExit()
|
||||||
if not dateList and not timeList:
|
if not dateList:
|
||||||
missingChoiceExit(WORKING_LOCATION_DATE_CHOICES|WORKING_LOCATION_TIME_CHOICES)
|
missingChoiceExit(WORKING_LOCATION_DATETIME_CHOICES)
|
||||||
datekvList = [Ent.USER, '', Ent.DATE, '', Ent.LOCATION, f"{body['workingLocationProperties'].get(location, {}).get('label', location)}"]
|
location = body['workingLocationProperties']['type']
|
||||||
timekvList = [Ent.USER, '', Ent.START_TIME, '', Ent.END_TIME, '', Ent.LOCATION, f"{body['workingLocationProperties'].get(location, {}).get('label', location)}"]
|
if location in body['workingLocationProperties'] and 'label' in body['workingLocationProperties'][location]:
|
||||||
|
location += f"/{body['workingLocationProperties'][location]['label']}"
|
||||||
|
datekvList = [Ent.CALENDAR, '', Ent.EVENT, '', Ent.DATE, '', Ent.LOCATION, location]
|
||||||
|
timekvList = [Ent.CALENDAR, '', Ent.EVENT, '', Ent.START_TIME, '', Ent.END_TIME, '', Ent.LOCATION, location]
|
||||||
i, count, users = getEntityArgument(users)
|
i, count, users = getEntityArgument(users)
|
||||||
for user in users:
|
for user in users:
|
||||||
i += 1
|
i += 1
|
||||||
user, cal = buildGAPIServiceObject(API.CALENDAR, user, i, count)
|
user, cal = buildGAPIServiceObject(API.CALENDAR, user, i, count)
|
||||||
if not cal:
|
if not cal:
|
||||||
continue
|
continue
|
||||||
datekvList[1] = user
|
|
||||||
jcount = len(dateList)
|
jcount = len(dateList)
|
||||||
|
entityPerformAction([Ent.CALENDAR, user, Ent.WORKING_LOCATION, None], i, count)
|
||||||
|
Ind.Increment()
|
||||||
j = 0
|
j = 0
|
||||||
for wlDate in dateList:
|
for wlDate in dateList:
|
||||||
j += 1
|
j += 1
|
||||||
first = wlDate['first']
|
first = wlDate['first']
|
||||||
last = wlDate['ulast']
|
last = wlDate['ulast']
|
||||||
|
kvList = datekvList if wlDate['type'] != 'timerange' else timekvList
|
||||||
|
kvList[1] = user
|
||||||
while first < last:
|
while first < last:
|
||||||
datekvList[3] = first.strftime(YYYYMMDD_FORMAT)
|
if wlDate['type'] != 'timerange':
|
||||||
body['start']['date'] = first.strftime(YYYYMMDD_FORMAT)
|
body['start']['date'] = first.strftime(YYYYMMDD_FORMAT)
|
||||||
body['end']['date'] = (first+datetime.timedelta(days=1)).strftime(YYYYMMDD_FORMAT)
|
kvList[5] = body['start']['date']
|
||||||
|
body['end']['date'] = (first+datetime.timedelta(days=1)).strftime(YYYYMMDD_FORMAT)
|
||||||
|
else:
|
||||||
|
body['start']['dateTime'] = ISOformatTimeStamp(first)
|
||||||
|
kvList[5] = body['start']['dateTime']
|
||||||
|
body['end']['dateTime'] = ISOformatTimeStamp(last)
|
||||||
|
kvList[7] = body['end']['dateTime']
|
||||||
try:
|
try:
|
||||||
callGAPI(cal.events(), 'insert',
|
event = callGAPI(cal.events(), 'insert',
|
||||||
throwReasons=GAPI.CALENDAR_THROW_REASONS+[GAPI.NOT_FOUND, GAPI.FORBIDDEN, GAPI.INVALID, GAPI.BAD_REQUEST,
|
throwReasons=GAPI.CALENDAR_THROW_REASONS+[GAPI.NOT_FOUND, GAPI.FORBIDDEN, GAPI.INVALID, GAPI.BAD_REQUEST,
|
||||||
GAPI.TIME_RANGE_EMPTY, GAPI.MALFORMED_WORKING_LOCATION_EVENT],
|
GAPI.TIME_RANGE_EMPTY, GAPI.MALFORMED_WORKING_LOCATION_EVENT],
|
||||||
calendarId=calId, body=body)
|
calendarId=calId, body=body, fields='id')
|
||||||
entityActionPerformed(datekvList, j, jcount)
|
kvList[3] = event['id']
|
||||||
|
entityActionPerformed(kvList, j, jcount)
|
||||||
|
if wlDate['type'] == 'timerange':
|
||||||
|
break
|
||||||
first += wlDate['udelta']
|
first += wlDate['udelta']
|
||||||
except (GAPI.notACalendarUser, GAPI.forbidden, GAPI.invalid) as e:
|
except (GAPI.notACalendarUser, GAPI.forbidden, GAPI.invalid) as e:
|
||||||
entityActionFailedWarning([Ent.USER, user], str(e), i, count)
|
entityActionFailedWarning([Ent.CALENDAR, user], str(e), i, count)
|
||||||
break
|
break
|
||||||
except (GAPI.badRequest, GAPI.timeRangeEmpty, GAPI.malformedWorkingLocationEvent) as e:
|
except (GAPI.badRequest, GAPI.timeRangeEmpty, GAPI.malformedWorkingLocationEvent) as e:
|
||||||
entityActionFailedWarning(datekvList, str(e), j, jcount)
|
entityActionFailedWarning(kvList, str(e), j, jcount)
|
||||||
break
|
break
|
||||||
except (GAPI.serviceNotAvailable, GAPI.authError):
|
except (GAPI.serviceNotAvailable, GAPI.authError):
|
||||||
entityServiceNotApplicableWarning(Ent.USER, user, i, count)
|
entityServiceNotApplicableWarning(Ent.USER, user, i, count)
|
||||||
break
|
break
|
||||||
timekvList[1] = user
|
Ind.Decrement()
|
||||||
jcount = len(timeList)
|
|
||||||
|
# gam <UserTypeEntity> delete workinglocation
|
||||||
|
# ((date yyyy-mm-dd)|
|
||||||
|
# (range yyyy-mm-dd yyyy-mm-dd)|
|
||||||
|
# (daily yyyy-mm-dd N)|
|
||||||
|
# (weekly yyyy-mm-dd N)|
|
||||||
|
# (timerange <Time> <Time>))+
|
||||||
|
def deleteWorkingLocation(users):
|
||||||
|
kwargs = {'eventTypes': ['workingLocation'], 'showDeleted': False, 'singleEvents': True,
|
||||||
|
'timeMax': None, 'timeMin': None, 'orderBy': 'startTime'}
|
||||||
|
calId = 'primary'
|
||||||
|
dateList = []
|
||||||
|
while Cmd.ArgumentsRemaining():
|
||||||
|
myarg = getArgument()
|
||||||
|
if myarg in WORKING_LOCATION_DATETIME_CHOICES:
|
||||||
|
getWorkingLocationDateTime(myarg, dateList)
|
||||||
|
else:
|
||||||
|
unknownArgumentExit()
|
||||||
|
if not dateList:
|
||||||
|
missingChoiceExit(WORKING_LOCATION_DATETIME_CHOICES)
|
||||||
|
datekvList = [Ent.CALENDAR, '', Ent.EVENT, '', Ent.DATE, '', Ent.LOCATION, '']
|
||||||
|
timekvList = [Ent.CALENDAR, '', Ent.EVENT, '', Ent.START_TIME, '', Ent.END_TIME, '', Ent.LOCATION, '']
|
||||||
|
i, count, users = getEntityArgument(users)
|
||||||
|
for user in users:
|
||||||
|
i += 1
|
||||||
|
user, cal = buildGAPIServiceObject(API.CALENDAR, user, i, count)
|
||||||
|
if not cal:
|
||||||
|
continue
|
||||||
|
jcount = len(dateList)
|
||||||
|
entityPerformAction([Ent.CALENDAR, user, Ent.WORKING_LOCATION, None], i, count)
|
||||||
|
Ind.Increment()
|
||||||
j = 0
|
j = 0
|
||||||
for wlTime in timeList:
|
for wlDate in dateList:
|
||||||
j += 1
|
j += 1
|
||||||
startTime = wlTime['start']
|
first = wlDate['first']
|
||||||
if 'dateTime' in startTime:
|
last = wlDate['last']
|
||||||
timekvList[3] = formatLocalTime(startTime['dateTime'])
|
kvList = datekvList if wlDate['type'] != 'timerange' else timekvList
|
||||||
else:
|
kvList[1] = user
|
||||||
timekvList[3] = startTime['date'].strftime(YYYYMMDD_FORMAT)
|
events = []
|
||||||
endTime = wlTime['end']
|
for _ in range(1, wlDate.get('repeats', 1)+1):
|
||||||
if 'dateTime' in endTime:
|
kwargs['timeMin'] = ISOformatTimeStamp(first)
|
||||||
timekvList[5] = formatLocalTime(endTime['dateTime'])
|
kwargs['timeMax'] = ISOformatTimeStamp(last)
|
||||||
else:
|
try:
|
||||||
timekvList[5] = endTime['date'].strftime(YYYYMMDD_FORMAT)
|
events = callGAPIpages(cal.events(), 'list', 'items',
|
||||||
body.update(wlTime)
|
throwReasons=GAPI.CALENDAR_THROW_REASONS+[GAPI.NOT_FOUND, GAPI.FORBIDDEN, GAPI.INVALID, GAPI.BAD_REQUEST],
|
||||||
try:
|
calendarId=calId, fields='nextPageToken,items(id,start,end,workingLocationProperties)', **kwargs)
|
||||||
callGAPI(cal.events(), 'insert',
|
except (GAPI.notACalendarUser, GAPI.notFound, GAPI.forbidden, GAPI.invalid, GAPI.badRequest) as e:
|
||||||
throwReasons=GAPI.CALENDAR_THROW_REASONS+[GAPI.NOT_FOUND, GAPI.FORBIDDEN, GAPI.INVALID, GAPI.BAD_REQUEST,
|
entityActionFailedWarning([Ent.CALENDAR, user], str(e), j, jcount)
|
||||||
GAPI.TIME_RANGE_EMPTY, GAPI.MALFORMED_WORKING_LOCATION_EVENT],
|
break
|
||||||
calendarId=calId, body=body)
|
except (GAPI.serviceNotAvailable, GAPI.authError):
|
||||||
entityActionPerformed(timekvList, j, jcount)
|
entityServiceNotApplicableWarning(Ent.CALENDAR, user, i, count)
|
||||||
except (GAPI.notACalendarUser, GAPI.forbidden, GAPI.invalid) as e:
|
break
|
||||||
entityActionFailedWarning([Ent.USER, user], str(e), i, count)
|
kcount = len(events)
|
||||||
break
|
k = 0
|
||||||
except (GAPI.badRequest, GAPI.timeRangeEmpty, GAPI.malformedWorkingLocationEvent) as e:
|
for event in events:
|
||||||
entityActionFailedWarning(timekvList, str(e), j, jcount)
|
k += 1
|
||||||
except (GAPI.serviceNotAvailable, GAPI.authError):
|
eventId = event['id']
|
||||||
entityServiceNotApplicableWarning(Ent.USER, user, i, count)
|
kvList[3] = eventId
|
||||||
break
|
location = event['workingLocationProperties']['type']
|
||||||
|
if location in event['workingLocationProperties'] and 'label' in event['workingLocationProperties'][location]:
|
||||||
|
location += f"/{event['workingLocationProperties'][location]['label']}"
|
||||||
|
try:
|
||||||
|
callGAPI(cal.events(), 'delete',
|
||||||
|
throwReasons=GAPI.CALENDAR_THROW_REASONS+[GAPI.NOT_FOUND, GAPI.DELETED, GAPI.FORBIDDEN,
|
||||||
|
GAPI.INVALID, GAPI.REQUIRED, GAPI.REQUIRED_ACCESS_LEVEL],
|
||||||
|
calendarId=calId, eventId=eventId, sendUpdates='none')
|
||||||
|
if 'date' in event['start']:
|
||||||
|
kvList[5] = event['start']['date']
|
||||||
|
kvList[7] = location
|
||||||
|
else:
|
||||||
|
kvList[5] = formatLocalTime(event['start']['dateTime'])
|
||||||
|
kvList[7] = formatLocalTime(event['end']['dateTime'])
|
||||||
|
kvList[9] = location
|
||||||
|
entityActionPerformed(kvList, k, kcount)
|
||||||
|
except (GAPI.notFound, GAPI.deleted) as e:
|
||||||
|
if not checkCalendarExists(cal, calId):
|
||||||
|
entityUnknownWarning(Ent.CALENDAR, calId, k, kcount)
|
||||||
|
break
|
||||||
|
entityActionFailedWarning([Ent.CALENDAR, calId, Ent.EVENT, eventId], str(e), k, kcount)
|
||||||
|
except (GAPI.forbidden, GAPI.invalid, GAPI.required, GAPI.requiredAccessLevel) as e:
|
||||||
|
entityActionFailedWarning([Ent.CALENDAR, calId, Ent.EVENT, eventId], str(e), k, kcount)
|
||||||
|
except GAPI.notACalendarUser as e:
|
||||||
|
entityActionFailedWarning([Ent.CALENDAR, calId], str(e), i, count)
|
||||||
|
break
|
||||||
|
except (GAPI.serviceNotAvailable, GAPI.authError):
|
||||||
|
entityServiceNotApplicableWarning(Ent.CALENDAR, calId, i, count)
|
||||||
|
break
|
||||||
|
Ind.Decrement()
|
||||||
|
|
||||||
# gam <UserTypeEntity> show workinglocation
|
# gam <UserTypeEntity> show workinglocation
|
||||||
# ((date yyyy-mm-dd)|
|
# ((date yyyy-mm-dd)|
|
||||||
# (range yyyy-mm-dd yyyy-mm-dd)|
|
# (range yyyy-mm-dd yyyy-mm-dd)|
|
||||||
# (daily yyyy-mm-dd N)|
|
# (daily yyyy-mm-dd N)|
|
||||||
# (weekly yyyy-mm-dd N))+
|
# (weekly yyyy-mm-dd N)|
|
||||||
|
# (timerange <Time> <Time>))+
|
||||||
# [showdayofweek]
|
# [showdayofweek]
|
||||||
# [formatjson]
|
# [formatjson]
|
||||||
# gam <UserTypeEntity> print workinglocation
|
# gam <UserTypeEntity> print workinglocation
|
||||||
# ((date yyyy-mm-dd)|
|
# ((date yyyy-mm-dd)|
|
||||||
# (range yyyy-mm-dd yyyy-mm-dd)|
|
# (range yyyy-mm-dd yyyy-mm-dd)|
|
||||||
# (daily yyyy-mm-dd N)|
|
# (daily yyyy-mm-dd N)|
|
||||||
# (weekly yyyy-mm-dd N))+
|
# (weekly yyyy-mm-dd N)|
|
||||||
|
# (timerange <Time> <Time>))+
|
||||||
# [showdayofweek]
|
# [showdayofweek]
|
||||||
# [formatjson [quotechar <Character>]] [todrive <ToDriveAttribute>*]
|
# [formatjson [quotechar <Character>]] [todrive <ToDriveAttribute>*]
|
||||||
def printShowWorkingLocation(users):
|
def printShowWorkingLocation(users):
|
||||||
@@ -47915,14 +47987,14 @@ def printShowWorkingLocation(users):
|
|||||||
myarg = getArgument()
|
myarg = getArgument()
|
||||||
if csvPF and myarg == 'todrive':
|
if csvPF and myarg == 'todrive':
|
||||||
csvPF.GetTodriveParameters()
|
csvPF.GetTodriveParameters()
|
||||||
elif myarg in WORKING_LOCATION_DATE_CHOICES:
|
elif myarg in WORKING_LOCATION_DATETIME_CHOICES:
|
||||||
getWorkingLocationDate(myarg, dateList)
|
getWorkingLocationDateTime(myarg, dateList)
|
||||||
elif myarg == 'showdayofweek':
|
elif myarg == 'showdayofweek':
|
||||||
showDayOfWeek = True
|
showDayOfWeek = True
|
||||||
else:
|
else:
|
||||||
FJQC.GetFormatJSONQuoteChar(myarg, True)
|
FJQC.GetFormatJSONQuoteChar(myarg, True)
|
||||||
if not dateList:
|
if not dateList:
|
||||||
missingChoiceExit(WORKING_LOCATION_DATE_CHOICES)
|
missingChoiceExit(WORKING_LOCATION_DATETIME_CHOICES)
|
||||||
i, count, users = getEntityArgument(users)
|
i, count, users = getEntityArgument(users)
|
||||||
for user in users:
|
for user in users:
|
||||||
i += 1
|
i += 1
|
||||||
@@ -47931,7 +48003,7 @@ def printShowWorkingLocation(users):
|
|||||||
continue
|
continue
|
||||||
jcount = len(dateList)
|
jcount = len(dateList)
|
||||||
if not csvPF and not FJQC.formatJSON:
|
if not csvPF and not FJQC.formatJSON:
|
||||||
entityPerformActionNumItems([Ent.USER, user], jcount, Ent.DATE, i, count)
|
entityPerformActionNumItems([Ent.CALENDAR, user], jcount, Ent.DATE, i, count)
|
||||||
j = 0
|
j = 0
|
||||||
for wlDate in dateList:
|
for wlDate in dateList:
|
||||||
j += 1
|
j += 1
|
||||||
@@ -47945,20 +48017,20 @@ def printShowWorkingLocation(users):
|
|||||||
throwReasons=GAPI.CALENDAR_THROW_REASONS+[GAPI.NOT_FOUND, GAPI.FORBIDDEN, GAPI.INVALID, GAPI.BAD_REQUEST],
|
throwReasons=GAPI.CALENDAR_THROW_REASONS+[GAPI.NOT_FOUND, GAPI.FORBIDDEN, GAPI.INVALID, GAPI.BAD_REQUEST],
|
||||||
calendarId=calId, fields='nextPageToken,items(id,start,end,workingLocationProperties)', **kwargs)
|
calendarId=calId, fields='nextPageToken,items(id,start,end,workingLocationProperties)', **kwargs)
|
||||||
except (GAPI.notACalendarUser, GAPI.notFound, GAPI.forbidden, GAPI.invalid, GAPI.badRequest) as e:
|
except (GAPI.notACalendarUser, GAPI.notFound, GAPI.forbidden, GAPI.invalid, GAPI.badRequest) as e:
|
||||||
entityActionFailedWarning([Ent.USER, user], str(e), i, count)
|
entityActionFailedWarning([Ent.CALENDAR, user], str(e), j, jcount)
|
||||||
break
|
break
|
||||||
except (GAPI.serviceNotAvailable, GAPI.authError):
|
except (GAPI.serviceNotAvailable, GAPI.authError):
|
||||||
entityServiceNotApplicableWarning(Ent.USER, user, i, count)
|
entityServiceNotApplicableWarning(Ent.USER, user, i, count)
|
||||||
break
|
break
|
||||||
if not csvPF:
|
if not csvPF:
|
||||||
jcount = len(events)
|
kcount = len(events)
|
||||||
Ind.Increment()
|
Ind.Increment()
|
||||||
j = 0
|
k = 0
|
||||||
for event in events:
|
for event in events:
|
||||||
j += 1
|
k += 1
|
||||||
if showDayOfWeek:
|
if showDayOfWeek:
|
||||||
_getEventDaysOfWeek(event)
|
_getEventDaysOfWeek(event)
|
||||||
_showCalendarWorkingLocation(user, calId, Ent.EVENT, event, j, jcount, FJQC)
|
_showCalendarWorkingLocation(user, calId, Ent.EVENT, event, k, kcount, FJQC)
|
||||||
Ind.Decrement()
|
Ind.Decrement()
|
||||||
else:
|
else:
|
||||||
for event in events:
|
for event in events:
|
||||||
@@ -70040,6 +70112,7 @@ USER_ADD_CREATE_FUNCTIONS = {
|
|||||||
Cmd.ARG_SMIME: createSmime,
|
Cmd.ARG_SMIME: createSmime,
|
||||||
Cmd.ARG_TASK: processTasks,
|
Cmd.ARG_TASK: processTasks,
|
||||||
Cmd.ARG_TASKLIST: processTasklists,
|
Cmd.ARG_TASKLIST: processTasklists,
|
||||||
|
Cmd.ARG_WORKINGLOCATION: createWorkingLocation,
|
||||||
}
|
}
|
||||||
|
|
||||||
USER_COMMANDS_WITH_OBJECTS = {
|
USER_COMMANDS_WITH_OBJECTS = {
|
||||||
@@ -70155,6 +70228,7 @@ USER_COMMANDS_WITH_OBJECTS = {
|
|||||||
Cmd.ARG_THREAD: processThreads,
|
Cmd.ARG_THREAD: processThreads,
|
||||||
Cmd.ARG_TOKEN: deleteTokens,
|
Cmd.ARG_TOKEN: deleteTokens,
|
||||||
Cmd.ARG_USER: deleteUsers,
|
Cmd.ARG_USER: deleteUsers,
|
||||||
|
Cmd.ARG_WORKINGLOCATION: deleteWorkingLocation,
|
||||||
}
|
}
|
||||||
),
|
),
|
||||||
'draft':
|
'draft':
|
||||||
@@ -70505,7 +70579,6 @@ USER_COMMANDS_WITH_OBJECTS = {
|
|||||||
Cmd.ARG_TASK: processTasks,
|
Cmd.ARG_TASK: processTasks,
|
||||||
Cmd.ARG_TASKLIST: processTasklists,
|
Cmd.ARG_TASKLIST: processTasklists,
|
||||||
Cmd.ARG_USER: updateUsers,
|
Cmd.ARG_USER: updateUsers,
|
||||||
Cmd.ARG_WORKINGLOCATION: updateWorkingLocation,
|
|
||||||
}
|
}
|
||||||
),
|
),
|
||||||
'watch':
|
'watch':
|
||||||
|
|||||||
Reference in New Issue
Block a user