예제 #1
0
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)
예제 #2
0
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}
예제 #3
0
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}
예제 #4
0
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...'}
예제 #5
0
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}
예제 #6
0
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='')}
예제 #7
0
파일: otherviews.py 프로젝트: C453/yhs_nhs
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)