def _getProfile(self, user_to_invite): key_name = '/'.join([ self.request_data.program.key().name(), user_to_invite.link_id]) return GCIProfile.get_by_key_name(key_name, parent=user_to_invite)
def _getInvitedProfile(self): key_name = '/'.join([ self.data.program.key().name(), self.data.invited_user.link_id]) return GCIProfile.get_by_key_name(key_name, parent=self.data.invited_user)
def populate(self, redirect, request, args, kwargs): """Populates the fields in the RequestData object. Args: request: Django HTTPRequest object. args & kwargs: The args and kwargs django sends along. """ super(RequestData, self).populate(redirect, request, args, kwargs) if kwargs.get('sponsor') and kwargs.get('program'): program_key_name = "%s/%s" % (kwargs['sponsor'], kwargs['program']) program_key = db.Key.from_path('GCIProgram', program_key_name) else: program_key = Site.active_program.get_value_for_datastore(self.site) program_key_name = program_key.name() timeline_key = db.Key.from_path('GCITimeline', program_key_name) org_app_key_name = 'gci_program/%s/orgapp' % program_key_name org_app_key = db.Key.from_path('OrgAppSurvey', org_app_key_name) keys = [program_key, timeline_key, org_app_key] self.program, self.program_timeline, self.org_app = db.get(keys) if not self.program: raise NotFound("There is no program for url '%s'" % program_key_name) self.timeline = TimelineHelper(self.program_timeline, self.org_app) if kwargs.get('organization'): fields = [self.program.key().id_or_name(), kwargs.get('organization')] org_key_name = '/'.join(fields) self.organization = GCIOrganization.get_by_key_name(org_key_name) if not self.organization: raise NotFound("There is no organization for url '%s'" % org_key_name) if self.user: key_name = '%s/%s' % (self.program.key().name(), self.user.link_id) self.profile = GCIProfile.get_by_key_name( key_name, parent=self.user) host_key = GCIProgram.scope.get_value_for_datastore(self.program) self.is_host = host_key in self.user.host_for if self.profile and self.profile.status != 'invalid': org_keys = set(self.profile.mentor_for + self.profile.org_admin_for) prop = GCIProfile.student_info student_info_key = prop.get_value_for_datastore(self.profile) if student_info_key: self.student_info = db.get(student_info_key) self.is_student = True else: orgs = db.get(org_keys) org_map = self.org_map = dict((i.key(), i) for i in orgs) self.mentor_for = org_map.values() self.org_admin_for = [org_map[i] for i in self.profile.org_admin_for] self.is_org_admin = self.is_host or bool(self.org_admin_for) self.is_mentor = self.is_org_admin or bool(self.mentor_for)