示例#1
0
    def get(self,slug):
        cookie = self.request.cookies.get('CookieProtocolServices')
        if cookie:
            session = ndb.Key(urlsafe=str(cookie)).get()
            user = session.key.parent().get()
            page = Page.query(Page.slug == slug).get()
            assignments = Assignment.query(
                Assignment.active == True,
                Assignment.user == user.key,
                Assignment.completed == False).order(
                    -Assignment.when).fetch(10)

            if page:
                #TODO: Manage subscriptions
                template = JINJA_ENVIRONMENT.get_template('app.html')
                self.response.write(template.render(
                    {'auth': True,
                     'page': page,
                     'user': user,
                     'homepage': user.subscription.get().startpage,
                     'assignments': assignments,
                     'text': process_text(page.text)}))
            
            else:
                template = JINJA_ENVIRONMENT.get_template('404.html')
                self.response.write(template.render({}))
                

        else:
            self.redirect('/login')
示例#2
0
 def delete_assign_by_number(quarter,year,number):
     assgn = Assignment.query(
         Assignment.quarter == quarter,
         Assignment.year == year,
         Assignment.number == number,
     ).get()
     assgn.key.delete()
示例#3
0
文件: main.py 项目: millerns/csse483
def get_assignments(user):
    """ Gets all of the assignments for this user and makes a key map for them. """
    assignments = Assignment.query(ancestor=get_parent_key(user)).order(Assignment.name).fetch()
    assignments_map = {}
    for assignment in assignments:
        assignments_map[assignment.key] = assignment
    return assignments, assignments_map
示例#4
0
    def post(self):
        if bool(self.request.get('choice')):
            ndb.delete_multi(Student.query().fetch(keys_only=True))
            ndb.delete_multi(Assignment.query().fetch(keys_only=True))
            ndb.delete_multi(Setting.query().fetch(keys_only=True))

        self.redirect('/admin')
示例#5
0
    def post(self):
        if bool(self.request.get('choice')):
            ndb.delete_multi(Student.query().fetch(keys_only=True))
            ndb.delete_multi(Assignment.query().fetch(keys_only=True))
            ndb.delete_multi(Setting.query().fetch(keys_only=True))

        self.redirect('/admin')
    def get(self):
        user, logout = check_user(users.get_current_user())
        if user:
            if self.request.get('id'):
                t = ndb.Key(urlsafe=self.request.get('id')).get()
                u = t.to_dict()
                t.revised = True
                t.put()
                
            else:
                cursor = None
                u = []
                more = True

                while more:
                    d, curs, more = Assignment.query(
                        Assignment.active == True).order(
                            -Assignment.when).fetch_page(
                                100, start_cursor=cursor)
                    for ditem in d:
                        u.append(ditem.to_dict())
                        
            
            self.response.out.headers['Content-Type'] = 'application/json'
            self.response.out.write(json.dumps({'data':u}))
示例#7
0
    def get_assign_n(quarter, year, n):
        assigns = Assignment.query(
            Assignment.quarter == quarter,
            Assignment.year == year,
        ).order(Assignment.number).fetch()

        try:
            return assigns[n]
        except IndexError:
            return None
示例#8
0
    def get_assign_n(quarter, year, n):
        assigns = Assignment.query(
            Assignment.quarter == quarter,
            Assignment.year == year,
        ).order(Assignment.number).fetch()

        try:
            return assigns[n]
        except IndexError:
            return None
示例#9
0
    def get_active_assign_with_earliest_eval_due_date(quarter, year):
        evals_after_now = Assignment.query(
            Assignment.quarter == quarter,
            Assignment.year == year,
            Assignment.eval_date > dt.now() - td(hours=7)
        ).order(Assignment.eval_date).fetch()

        if len(evals_after_now) > 0:
            return evals_after_now[0]
        else:
            return None
示例#10
0
    def get_active_assign_with_earliest_eval_due_date(quarter, year):
        evals_after_now = Assignment.query(
            Assignment.quarter == quarter,
            Assignment.year == year,
            Assignment.eval_date > dt.now() - td(hours=7)
        ).order(Assignment.eval_date).fetch()

        if len(evals_after_now) > 0:
            return evals_after_now[0]
        else:
            return None
示例#11
0
    def get_active_assign_with_latest_fade_in_date(quarter, year):
        assigns_after_now = Assignment.query(
            Assignment.quarter == quarter,
            Assignment.year == year,
            Assignment.fade_in_date < dt.now() - td(hours=7)
        ).order(Assignment.fade_in_date).fetch()

        try:
            return assigns_after_now[-1]
        except IndexError:
            return None
示例#12
0
    def get_active_assign_with_latest_fade_in_date(quarter, year):
        assigns_after_now = Assignment.query(
            Assignment.quarter == quarter,
            Assignment.year == year,
            Assignment.fade_in_date < dt.now() - td(hours=7)
        ).order(Assignment.fade_in_date).fetch()

        try:
            return assigns_after_now[-1]
        except IndexError:
            return None
示例#13
0
    def get(self):
        cookie = self.request.cookies.get('CookieProtocolServices')
        admin, logout = check_user(users.get_current_user())

        if cookie:
            session = ndb.Key(urlsafe=str(cookie)).get()
            user = session.key.parent().get()

            assignments = Assignment.query(
                Assignment.active == True,
                Assignment.user == user.key,
                Assignment.completed == False).order(
                    -Assignment.when).fetch(10)


            template = JINJA_ENVIRONMENT.get_template('user.html')
            self.response.write(template.render(
                {'auth': False,
                 'user': user.to_dict(),
                 'assignments': assignments}))


        elif admin:
            user = ndb.Key(urlsafe=self.request.get('id')).get()

            assignments = Assignment.query(
                Assignment.user == user.key,
                Assignment.completed == False).order(
                    -Assignment.when).fetch(10)


            template = JINJA_ENVIRONMENT.get_template('user.html')
            self.response.write(template.render(
                {'auth': True,
                 'user': user.to_dict(),
                 'assignments': assignments}))
            

        else:
            self.redirect('/login?to={}'.format(slug))
示例#14
0
    def get_inactive_assigns(quarter, year):
        all_assigns = Assignment.query(
            Assignment.quarter == quarter,
            Assignment.year == year
        ).order(Assignment.fade_in_date).fetch()

        to_return = []

        for i in range(len(all_assigns) - 1, -1, -1):
            if all_assigns[i].fade_out_date < dt.now() - td(hours=7) or all_assigns[i].fade_in_date > dt.now() - td(hours=7):
                to_return.append(all_assigns[i])

        return to_return
示例#15
0
    def get_active_eval_assigns(quarter, year):
        assigns_before_now = Assignment.query(
            Assignment.quarter == quarter,
            Assignment.year == year,
            Assignment.eval_date > dt.now() - td(hours=7)
        ).order(Assignment.eval_date).fetch()

        to_return = []

        for i in range(len(assigns_before_now)):
            if assigns_before_now[i].eval_open_date < dt.now() - td(hours=7):
                to_return.append(assigns_before_now[i])

        return to_return
示例#16
0
    def get_active_eval_assigns(quarter, year):
        assigns_before_now = Assignment.query(
            Assignment.quarter == quarter,
            Assignment.year == year,
            Assignment.eval_date > dt.now() - td(hours=7)
        ).order(Assignment.eval_date).fetch()

        to_return = []

        for i in range(len(assigns_before_now)):
            if assigns_before_now[i].eval_open_date < dt.now() - td(hours=7):
                to_return.append(assigns_before_now[i])

        return to_return
示例#17
0
文件: main.py 项目: kcheung/iOSCourse
 def get(self):
     user = users.get_current_user()
     if not user:
         self.redirect(users.create_login_url(self.request.uri))
     else:
         assignments_with_grades = [];
         assignment_query = Assignment.query().order(Assignment.assignment_name).filter(Assignment.owner_email == user.email().lower())
         for an_assignment in assignment_query:
             grade_entry_query = GradeEntry.query().order(GradeEntry.student_name).filter(GradeEntry.owner_email == user.email().lower()).filter(GradeEntry.assignment_id == an_assignment.id)
             assignments_with_grades.append({'assignment_name': an_assignment.assignment_name, 'grade_entries': grade_entry_query})
         self.response.out.write(template.render('templates/graderecorder.html',
                                                 {'assignments_with_grades': assignments_with_grades,
                                                  'assignments': assignment_query,
                                                  'use_hardcoded_roster': True,
                                                  'user_email': user.email(),
                                                  'logout_link': users.create_logout_url("/")}))
示例#18
0
文件: main.py 项目: kcheung/iOSCourse
    def get(self):
        user = users.get_current_user()
        if not user:
            self.redirect(users.create_login_url(self.request.uri))
        else:
            grades = [];
            assignment_query = Assignment.query().order(Assignment.assignment_name).filter(Assignment.owner == user)
            for an_assignment in assignment_query:
                assignment_dict = {'assignment_name': an_assignment.assignment_name}
                grade_entries = []
                grade_entry_query = GradeEntry.query().order(GradeEntry.student_name).filter(GradeEntry.owner == user).filter(GradeEntry.assignment_id == an_assignment.id)
                for a_grade_entry in grade_entry_query:
                    self.add_team_individuals(a_grade_entry, grade_entries)
#                     grade_entries.append(a_grade_entry)
                assignment_dict['grade_entries'] = sorted(grade_entries, key=operator.attrgetter('student_name'))
                grades.append(assignment_dict)
            self.response.out.write(template.render('templates/graderecorder.html',
                                                    {'grades': grades,
                                                     'assignments': assignment_query,
                                                     'use_hardcoded_roster': True,
                                                     'user_email': user.email(),
                                                     'logout_link': users.create_logout_url("/")}))
 def assignment_list(self, query):
     """ List all the assignments owned by the given user """
     user = endpoints.get_current_user()
     assignments = Assignment.query(ancestor=main.get_parent_key(user)).order(Assignment.name)
     return assignments
from datetime import datetime, timedelta
import logging

from models import Exam, Assignment
from FCM import sendNotification
from apiMethods import createNotification

logging.basicConfig(level=logging.DEBUG)
LOG = logging.getLogger(__name__)
date = (datetime.now() + timedelta(days=7))
date = date.strftime('%d-%m-%Y')
LOG.info(date)
examList = Exam.query(Exam.dueDate == date).fetch()
LOG.info(str(examList))
assignmentList = Assignment.query(Assignment.dueDate == date).fetch()
for exam in examList:
    LOG.info(str(exam))
    sendNotification(exam.courseId.urlsafe(),
                     exam.key.urlsafe(), 'exam',
                     'Warning!!! Exam ahead',
                     'There is a exam next week')
    course = exam.courseId.get()
    title = course.courseName
    notificationText = 'There is a exam next week'
    createNotification(course.studentIds, title,
                       notificationText, 'exam',
                       exam.key.urlsafe(), course.key.urlsafe())

for assignment in assignmentList:
    LOG.info(str(assignment))
    sendNotification(assignment.courseId.urlsafe(),
示例#21
0
 def get_assign_by_number(quarter, year, number):
     return Assignment.query(
         Assignment.quarter == quarter,
         Assignment.year == year,
         Assignment.number == number,
     ).get()
示例#22
0
 def get_all_assign(quarter, year):
     return Assignment.query(
         Assignment.quarter == quarter,
         Assignment.year == year
     ).order(Assignment.number).fetch()
示例#23
0
 def get_assigns_for_quarter(quarter, year):
     return Assignment.query(
         Assignment.quarter == quarter,
         Assignment.year == year,
     )
示例#24
0
 def get_assign_by_number(quarter, year, number):
     return Assignment.query(
         Assignment.quarter == quarter,
         Assignment.year == year,
         Assignment.number == number,
     ).get()
示例#25
0
 def get_all_assign(quarter, year):
     return Assignment.query(
         Assignment.quarter == quarter,
         Assignment.year == year
     ).order(Assignment.number).fetch()
示例#26
0
 def get_assigns_for_quarter(quarter, year):
     return Assignment.query(
         Assignment.quarter == quarter,
         Assignment.year == year,
     )