def email(context,request): logged_in = authenticated_userid(request) main = get_renderer('../templates/master.pt').implementation() schema = EmailSchema() emailform = Form(schema, buttons=('submit',)) if 'message' in request.params: try: controls = request.POST.items() captured = emailform.validate(controls) except deform.ValidationFailure, e: emailform = e.render() return {'red': '', 'main': main, 'form': emailform, 'content': '', 'logged_in': logged_in} to = request.params["to"] subject = request.params["subject"] message = request.params["message"] users = context["users"] url = request.application_url deadlines = find_root(context)['deadlines'] nextsdl = '' nextjdl = '' for dl in deadlines.values(): if dl.appliedClass == "Juniors" or dl.appliedClass == 'All': if not nextjdl: nextjdl = dl elif nextjdl > dl: nextjdl = dl if dl.appliedClass == "Seniors" or dl.appliedClass == 'All': if not nextsdl: nextsdl = dl elif nextsdl > dl: nextsdl = dl for user in users.values(): if calendarstuff.class_from_year(user.gradYear) == "Junior": appldeadline = nextjdl elif calendarstuff.class_from_year(user.gradYear) == "Senior": appldeadline = nextsdl if to == "all": calendarstuff.email(subject, user.email, message, url) elif to == "officers" and user.isOfficer: calendarstuff.email(subject, user.email, message, url) elif to == "juniors" and calendarstuff.class_from_year(user.gradYear) == "Junior": calendarstuff.email(subject, user.email, message, url) elif to == "seniors" and calendarstuff.class_from_year(user.gradYear) == "Senior": calendarstuff.email(subject, user.email, message, url) elif to == "dues" and not user.dues: calendarstuff.email(subject, user.email, message, url) elif to == "gpa" and not user.gpa: calendarstuff.email(subject, user.email, message, url) elif to == "thours" and user.hours > appldeadline.hours: calendarstuff.email(subject, user.email, message, url) elif to == "shours" and user.sponsored > appldeadline.sponsored: calendarstuff.email(subject, user.email, message, url)
def view_servicelog(context,request): logged_in = authenticated_userid(request) currentuser = find_root(request.context)["users"][logged_in] main = get_renderer('../templates/master.pt').implementation() app = find_root(request.context) if currentuser.isOfficer: if "action" in request.params: for ID in request.params.keys(): if not ID in ['action','comment','note']: event = context[ID] if request.params["action"] == "delete": if event.verified == "Verified": event.user.hours -= float(event.hours) if event.eventType == "Sponsored": event.user.sponsored -= float(event.hours) app['activityLogs'].event_deactivation(currentuser,event,request.application_url) del event.__parent__[str(event.ID)] elif request.params["action"] == "verify": if not event.verified == "Verified": event.user.hours += float(event.hours) if event.eventType == "Sponsored": event.user.sponsored += float(event.hours) event.verified = "Verified" app['activityLogs'].event_verification(currentuser,event,request.application_url) elif request.params["action"] == "flag": if event.verified == "Verified": event.user.hours -= float(event.hours) if event.eventType == "Sponsored": event.user.sponsored -= float(event.hours) event.verified = "Flagged" find_root(context)['activityLogs'].event_flagging(currentuser,event,request.application_url) elif request.params["action"] == "unverify": if event.verified == "Verified": event.user.hours -= float(event.hours) if event.eventType == "Sponsored": event.user.sponsored -= float(event.hours) event.verified = "Unverified" find_root(context)['activityLogs'].event_unverification(currentuser,event,request.application_url) if request.params["comment"]: if event.comment: event.comment += " "+request.params['comment'] else: event.comment = request.params['comment'] permission=True red='' if not logged_in == context.user.username: if not find_root(context)['users'][logged_in].isAdvisor and not find_root(context)['users'][logged_in].isOfficer: permission=False red = 'serviceLogs' userclass = calendarstuff.class_from_year(context.user.gradYear) deadlines = find_root(context)["deadlines"] now = datetime.now() return {'red':red, 'main':main, 'content':context, 'logged_in':logged_in, 'name':'Service Logs', 'isallowed':permission, 'deadlines':deadlines}
def view_user(context,request): logged_in = authenticated_userid(request) isloggedinuser = False currentuser = find_root(request.context)["users"][logged_in] main = get_renderer('../templates/master.pt').implementation() if currentuser == context or currentuser.isAdvisor or currentuser.isOfficer: isloggedinuser = True gradclass = calendarstuff.class_from_year(context.gradYear) return {'red':'', 'main':main, 'content':'', 'logged_in':logged_in, 'gradclass':gradclass, 'userself':isloggedinuser, 'isadvisor':currentuser.isAdvisor, 'name':'User '+context.username}
def reactivate_user(context, request): app=find_root(context) logged_in = authenticated_userid(request) isloggedinuser = False currentuser = find_root(request.context)["users"][logged_in] main = get_renderer('../templates/master.pt').implementation() if currentuser == context or currentuser.isAdvisor or currentuser.isOfficer: isloggedinuser = True gradclass = calendarstuff.class_from_year(context.gradYear) context.deactivated = False app['activityLogs'].user_reactivation(currentuser,context,request.application_url) return {'red':'users/'+context.username, 'main':main, 'content':'User Reactivated', 'logged_in':logged_in, 'gradclass':gradclass, 'userself':isloggedinuser, 'isadvisor':currentuser.isAdvisor, 'name':'Redirecting...'}
def home(context, request): name = 'Home Page' logged_in = authenticated_userid(request) main = get_renderer('../templates/master.pt').implementation() user = find_root(request.context)['users'][logged_in] if not user.isComplete(): return {'red': 'users/'+logged_in+'/update', 'main': main, 'content': context['settings'].maintext, 'logged_in': logged_in, 'hours':{'V_hours':0, #VUSIT 'U_hours':0, 'S_hours':0, 'I_hours':0, 'T_hours':0, 'J_hours':0, 'Se_hours':0 }, 'name': "Redirecting to User Update..."} serv_log = find_root(request.context)['serviceLogs'] deadlines = find_root(request.context)['deadlines'].values() deadlines.sort(key=lambda deadline: abs(deadline.dateDue - datetime.datetime.today())) current_deadline = deadlines[0] if user.isStudent and not user.isAdvisor: for log in serv_log.values(): if log.user.username == logged_in: main_log = log verified_hours = 0 unverified_hours = 0 sponsored_hours = 0 independent_hours = 0 total_hours = 0 flagged_events = [] for event in main_log.values(): total_hours += float(event.hours) if event.verified == u'Verified': verified_hours += float(event.hours) else: unverified_hours += float(event.hours) if event.eventType == 'Sponsored': sponsored_hours += float(event.hours) else: independent_hours += float(event.hours) if event.verified == 'Flagged': flagged_events.append(event) hours_dict = {'V_hours':verified_hours, #VUSIT 'U_hours':unverified_hours, 'S_hours':sponsored_hours, 'I_hours':independent_hours, 'T_hours':total_hours, } if user.isAdvisor: verified_hours = 0 unverified_hours = 0 sponsored_hours = 0 independent_hours = 0 total_hours = 0 senior_hours = 0 junior_hours = 0 for log in serv_log.values(): for event in log.values(): total_hours += float(event.hours) if event.verified == u'Verified': verified_hours += float(event.hours) else: unverified_hours += float(event.hours) if event.eventType == 'Sponsored': sponsored_hours += float(event.hours) else: independent_hours += float(event.hours) if calendarstuff.class_from_year(event.user.gradYear) == "Junior": junior_hours += float(event.hours) else: senior_hours += float(event.hours) hours_dict = {'V_hours':verified_hours, #VUSITJSe 'U_hours':unverified_hours, 'S_hours':sponsored_hours, 'I_hours':independent_hours, 'T_hours':total_hours, 'J_hours':junior_hours, 'Se_hours':senior_hours, } flagged_events = [] return {'red': '', 'main': main, 'content': context['settings'].maintext, 'hours':hours_dict, 'flagged':flagged_events, 'deadline':current_deadline, 'logged_in': logged_in, 'name': name}
def view_servicelogs(context, request): logged_in = authenticated_userid(request) user = find_root(request.context)['users'][logged_in] main = get_renderer('../templates/master.pt').implementation() isadmin = find_root(context)['users'][logged_in].isAdvisor \ or find_root(context)['users'][logged_in].isOfficer deadlines = find_root(context)["deadlines"] nextsdl = '' nextjdl = '' contextlist = [] if not deadlines: for servicelog in context.values(): contextlist.append((servicelog, True, True, servicelog.unverified_hours(), servicelog.flagged_hours(),)) else: for dl in deadlines.values(): if dl.appliedClass == "Juniors" or dl.appliedClass == 'All': if not nextjdl: nextjdl = dl elif nextjdl.dateDue < dl.dateDue: nextjdl = dl if dl.appliedClass == "Seniors" or dl.appliedClass == 'All': if not nextsdl: nextsdl = dl elif nextsdl.dateDue < dl.dateDue: nextsdl = dl for servicelog in context.values(): #servlog = (obj, bool, bool, #, #) if calendarstuff.class_from_year(servicelog.user.gradYear) == "Junior": if nextjdl: contextlist.append((servicelog, float(servicelog.user.hours)>=float(nextjdl.hours), #bool float(servicelog.user.sponsored)>=float(nextjdl.hours), #bool servicelog.unverified_hours(), servicelog.flagged_hours())) else: contextlist.append((servicelog, True, True, servicelog.unverified_hours(), servicelog.flagged_hours(),)) elif calendarstuff.class_from_year(servicelog.user.gradYear) == "Senior": if nextsdl: contextlist.append((servicelog, float(servicelog.user.hours)>=float(nextsdl.hours), float(servicelog.user.sponsored)>=float(nextsdl.sponsored), servicelog.unverified_hours(), servicelog.flagged_hours())) else: contextlist.append((servicelog, True, True, servicelog.unverified_hours(), servicelog.flagged_hours(),)) return {'red':'', 'main':main, 'content':context, 'logged_in':logged_in, 'name':'Service Logs', 'isadmin':isadmin, 'contentlist':contextlist, 'TutText': getTutText(context, view='')}
def email(context,request): logged_in = authenticated_userid(request) main = get_renderer('../templates/master.pt').implementation() schema = EmailSchema() emailform = Form(schema, buttons=('submit',)) if 'message' in request.params: try: controls = request.POST.items() captured = emailform.validate(controls) except deform.ValidationFailure, e: emailform = e.render() import pbd; pbd.set_trace() return {'red': '', 'main': main, 'form': emailform, 'content': '', 'logged_in': logged_in, 'TutText': getTutText(context, view='')} to = request.params["to"] subject = request.params["subject"] message = request.params["message"] users = context["users"] url = request.application_url deadlines = find_root(context)['deadlines'] nextsdl = '' nextjdl = '' for dl in deadlines.values(): if dl.appliedClass == "Juniors" or dl.appliedClass == 'All': if not nextjdl: nextjdl = dl elif nextjdl > dl: nextjdl = dl if dl.appliedClass == "Seniors" or dl.appliedClass == 'All': if not nextsdl: nextsdl = dl elif nextsdl > dl: nextsdl = dl import mail my_mail = mail.Email(subject, "*****@*****.**", message) for user in users.values(): if user.username == 'god': continue userGradYear = calendarstuff.class_from_year(user.gradYear) userrep = {"fname": user.firstName, "lname": user.lastName, "studentid": user.studentId, "class": userGradYear, "email": user.email, "phone": user.phone, "servicehours": user.hours, "meeting1": user.firstMeeting, "meeting2": user.secondMeeting, "meeting3": user.thirdMeeting, "sponsoredhours": user.sponsored, "gradyear": user.gradYear, "inductionyear": user.inductionYear, "goodgpa": user.gpa, "paiddues": user.dues} if userGradYear == "Junior": appldeadline = nextjdl elif userGradYear == "Senior": appldeadline = nextsdl if to == "all": my_mail.send(userrep) elif to == "officers" and user.isOfficer: my_mail.send(userrep) elif to == "juniors" and userGradYear == "Junior": my_mail.send(userrep) elif to == "seniors" and userGradYear == "Senior": my_mail.send(userrep) elif to == "dues" and not user.dues: my_mail.send(userrep) elif to == "gpa" and not user.gpa: my_mail.send(userrep) elif to == "thours" and user.hours > appldeadline.hours: my_mail.send(userrep) elif to == "shours" and user.sponsored > appldeadline.sponsored: my_mail.send(userrep)