257 filter = {'user': user, |
257 filter = {'user': user, |
258 'scope': program_entity} |
258 'scope': program_entity} |
259 student_entity = student_logic.logic.getForFields(filter, unique=True) |
259 student_entity = student_logic.logic.getForFields(filter, unique=True) |
260 |
260 |
261 if student_entity: |
261 if student_entity: |
262 items += self._getStudentEntries(program_entity, params, id, user) |
262 items += self._getStudentEntries(program_entity, student_entity, |
|
263 params, id, user) |
263 |
264 |
264 # get mentor and org_admin entity for this user and program |
265 # get mentor and org_admin entity for this user and program |
265 filter = {'user': user, |
266 filter = {'user': user, |
266 'program': program_entity} |
267 'program': program_entity} |
267 mentor_entity = mentor_logic.logic.getForFields(filter, unique=True) |
268 mentor_entity = mentor_logic.logic.getForFields(filter, unique=True) |
268 org_admin_entity = org_admin_logic.logic.getForFields(filter, unique=True) |
269 org_admin_entity = org_admin_logic.logic.getForFields(filter, unique=True) |
269 |
270 |
270 if mentor_entity or org_admin_entity: |
271 if mentor_entity or org_admin_entity: |
271 items += self._getOrganizationEntries(program_entity, params, id, user) |
272 items += self._getOrganizationEntries(program_entity, org_admin_entity, |
|
273 mentor_entity, params, id, user) |
272 |
274 |
273 if not (student_entity or mentor_entity or org_admin_entity): |
275 if not (student_entity or mentor_entity or org_admin_entity): |
274 if timeline_helper.isActivePeriod(timeline_entity, 'student_signup'): |
276 if timeline_helper.isActivePeriod(timeline_entity, 'student_signup'): |
275 # this user does not have a role yet for this program |
277 # this user does not have a role yet for this program |
276 items += [('/student/apply/%s' % (program_entity.key().name()), |
278 items += [('/student/apply/%s' % (program_entity.key().name()), |
287 items += [('/org/apply_mentor/%s' % (program_entity.key().name()), |
289 items += [('/org/apply_mentor/%s' % (program_entity.key().name()), |
288 "Apply to become a Mentor", 'any_access')] |
290 "Apply to become a Mentor", 'any_access')] |
289 |
291 |
290 return items |
292 return items |
291 |
293 |
292 def _getStudentEntries(self, program_entity, params, id, user): |
294 def _getStudentEntries(self, program_entity, student_entity, params, id, user): |
293 """Returns a list with menu items for students in a specific program. |
295 """Returns a list with menu items for students in a specific program. |
294 """ |
296 """ |
295 |
297 |
296 items = [] |
298 items = [] |
297 |
299 |
300 # TODO(ljvderijk) add the student application links |
302 # TODO(ljvderijk) add the student application links |
301 |
303 |
302 if timeline_helper.isActivePeriod(timeline_entity, 'student_signup'): |
304 if timeline_helper.isActivePeriod(timeline_entity, 'student_signup'): |
303 #items += [('/org/apply_mentor/%s' % (program_entity.key().name()), |
305 #items += [('/org/apply_mentor/%s' % (program_entity.key().name()), |
304 # "Send in your student proposal (N/A)", 'any_access')] |
306 # "Send in your student proposal (N/A)", 'any_access')] |
305 #items += [('/org/apply_mentor/%s' % (program_entity.key().name()), |
307 items += [(redirects.getListSelfRedirect(student_entity, |
306 # "List my student proposals (N/A)", 'any_access')] |
308 {'url_name':'student_proposal'}), |
307 pass |
309 "List my Student Proposals", 'any_access')] |
308 |
310 |
309 return items |
311 return items |
310 |
312 |
311 def _getOrganizationEntries(self, program_entity, params, id, user): |
313 def _getOrganizationEntries(self, program_entity, org_admin_entity, |
|
314 mentor_entity, params, id, user): |
312 """Returns a list with menu items for org admins and mentors in a |
315 """Returns a list with menu items for org admins and mentors in a |
313 specific program. |
316 specific program. |
314 """ |
317 """ |
315 |
318 |
316 # TODO(ljvderijk) think about adding specific org items like submit review |
319 # TODO(ljvderijk) think about adding specific org items like submit review |