def create_share_record(self, schedule, shareToProfile): currentUser = users.get_current_user(); shareRecord = ShareRecord(parent=schedule) shareRecord.owner = currentUser shareRecord.ownerID = currentUser.user_id() shareRecord.schedule = schedule shareRecord.sharedToUser = shareToProfile.user shareRecord.put()
def get_shared_schedules(self): sharedToMe = [] records = ShareRecord.all() records.filter('sharedToUser ='******'name'] = cgi.escape(record.schedule.name) schedule['nameB64'] = base64.b64encode(record.schedule.name) schedule['owner'] = cgi.escape(record.schedule.owner.nickname()) schedule['courseCount'] = record.schedule.course_set.count() schedule['term'] = record.schedule.term schedule['year'] = record.schedule.year schedule['shareKey'] = str(record.key()) sharedToMe.append(schedule) return sharedToMe
def safely_delete(self, schedule): profile = profiles.get_user_profile_from_ds() # Simply comparing the two schedules themselves doesn't work # so we compare their keys if profile.currentSchedule.key() == schedule.key(): logging.info('Deleted current schedule "' + schedule.name + '"') profile.currentSchedule = None profile.put() # Delete all courses in this schedule courses = Course.all().ancestor(schedule) for course in courses: course.delete() # Unshare this schedule from everyone records = ShareRecord.all().ancestor(schedule) for sharing in records: sharing.delete() schedule.delete()
def is_already_shared(self, schedule, userToShareTo): records = ShareRecord.all() records.filter('owner =', users.get_current_user()) records.filter('schedule =', schedule) records.filter('sharedToUser =', userToShareTo) return records.count() > 0