Exemple #1
0
def editFaq(request, uinfo):
    context = {}
    loginFLOW(request, context)
    if context['username'] == '':
        return HttpResponseRedirect(context['sign_in_url'])
    elif context['username'] != uinfo:
        return HttpResponse('You are not authorized')

    user_dict = db.collection(u'Users').document(
        context['username']).get().to_dict()
    faq_dict = db.collection(u'Homepage').document(u'faq').get().to_dict()

    if 'isAdmin' in user_dict:
        context["isAdmin"] = "True"
    else:
        context["isAdmin"] = "False"
    context["Designation"] = user_dict['Designation']

    if context['isAdmin'] == "False":
        return HttpResponse('Sorry, you do not have authorization rights')

    faq_list = faq_dict['qa']
    count = []
    counter = 0
    for item in faq_dict['qa']:
        counter += 1
        count.append(counter)

    final_list = zip(count, faq_list)
    context['faq_list'] = final_list
    context['numberOfFAQ'] = counter

    return render(request, "home/editfaq.html", context)
Exemple #2
0
def ViewUser(request, uinfo):
    context = {}
    context = loginFLOW(request, context)

    if context['username'] != uinfo:
        return HttpResponse("You are not authorized")

    profile = db.collection(u'Users').document(context['username'])
    profile_dict = profile.get().to_dict()

    context['profile'] = profile_dict

    all_projects = db.collection(u'Projects').where(u'Creator', u'==',
                                                    profile).get()
    project_list = []
    for x in all_projects:
        project = x.to_dict()
        project['id'] = x.id
        project_list.append(project)
    if 'isAdmin' in profile_dict:
        context["isAdmin"] = "True"
    else:
        context["isAdmin"] = "False"

    context['Designation'] = profile_dict['Designation']
    context['projects'] = project_list

    if not project_list:
        context['isProjects'] = "False"
    else:
        context['isProjects'] = "True"

    return render(request, 'home/profile.html', context)
Exemple #3
0
def getDesig(request, cinfo):
    context = {}
    context = loginFLOW(request, context)
    username = context['username']
    user_ref = db.collection(u'Users').document(username).get()
    user_dict = user_ref.to_dict()
    Designation = user_dict['Designation']
    if Designation == "Faculty":
        return "Faculty"

    CourseDict = db.collection("Courses").document(cinfo).get().to_dict()

    try:
        TAListref = CourseDict["TAList"]
        for TA in TAListref:
            if username == TA.get().to_dict()["Username"]:
                return "Faculty"
    except:
        pass

    try:
        StuRef = db.collection("Courses").document(
            cinfo).get().to_dict()["StudentList"]

        for Stu in StuRef:
            if username == Stu["StudentID"].get().to_dict()["Username"]:
                return "Student"
    except:
        pass

    return "UnRegStu"
Exemple #4
0
def view_calendar(request, CourseID):
    context = {}
    context = loginFLOW(request, context)
    if context['username'] == '':
        return HttpResponseRedirect(reverse('home:home'))

    username = context['username']

    page_token = None
    while True:
        calendar_list = service.calendarList().list(
            pageToken=page_token).execute()
        for calendar_list_entry in calendar_list['items']:
            if calendar_list_entry['summary'] == CourseID:
                CalendarID = calendar_list_entry['id']
        page_token = calendar_list.get('nextPageToken')
        if not page_token:
            break

    if request.method == 'POST':
        pass
    elif request.method == 'GET':
        context['CourseID'] = CourseID
        context['CalendarID'] = CalendarID
        # return render(request, 'discussion/calendar.html', {'CourseID': CourseID, 'CalendarID': CalendarID})
        return render(request, 'discussion/calendar.html', context)
Exemple #5
0
def editProfile(request, uinfo):
    access_token = get_access_token(
        request, request.build_absolute_uri(reverse('home:gettoken')))
    if not access_token:
        return HttpResponse("You are not logged in")
    user = get_me(access_token)
    username = user['mail'].replace("@iitg.ac.in", "")
    if username != uinfo:
        return HttpResponse("You are not authorized")
    user = db.collection(u'Users').document(username).get()
    user_dict = user.to_dict()
    user_dict["id"] = user.id
    t = 0
    if user_dict["Designation"] == "Student":
        t = 1
    if user_dict["Designation"] == "Faculty":
        t = 0
    context = {'isStudent': t, 'user': user_dict}
    context = loginFLOW(request, context)
    if 'isAdmin' in user_dict:
        context["isAdmin"] = "True"
    else:
        context["isAdmin"] = "False"
    context['Designation'] = user_dict['Designation']
    return render(request, 'home/editProfile.html', context)
Exemple #6
0
def projectUpdate(request, pinfo):
    context = {}
    if request.method == 'POST':
        context = loginFLOW(request, context)

        if context['username'] == '':
            return HttpResponse("You are not logged in")

        project_dict = db.collection(u'Projects').document(
            pinfo).get().to_dict()
        creator = project_dict['Creator'].get().id

        if context['username'] != creator:
            return HttpResponse("You are not authorized")

        updated_project = {}
        updated_project['Title'] = request.POST.get('title')
        updated_project['AboutProject'] = request.POST.get('about')
        if request.POST.get('cmurl') != '':
            updated_project["Media"] = request.POST.get('cmurl')
        updated_project['Mentor'] = request.POST.get('mentors')
        updated_project['People'] = request.POST.get('people')
        updated_project['Achievements'] = request.POST.get('achievements')

        db.collection(u'Projects').document(pinfo).update(updated_project)

        return HttpResponseRedirect("/home/projects/" + pinfo)
    return HttpResponseRedirect(reverse('home:home'))
Exemple #7
0
def ViewCourse(request, cinfo):
    Designation = getDesig(request, cinfo)
    if Designation == "UnRegStu":
        return HttpResponse(status=511)

    context = {}
    context = loginFLOW(request, context)
    if context['username'] == '':
        return HttpResponseRedirect(reverse('home:home'))

    username = context['username']
    user_ref = db.collection(u'Users').document(username).get()
    user_dict = user_ref.to_dict()
    # cid += "_" + username + " _" + cyear
    assgn_ref = db.collection(u'Courses').document(cinfo).collection(
        u'Assignments').get()
    AssgnDetails = []
    for assgn in assgn_ref:
        AssgnDetails.append(assgn.to_dict())
    context['AssgnDetails'] = AssgnDetails
    context['CourseInfo'] = cinfo
    context['Designation'] = Designation
    # {
    #     'AssgnDetails': AssgnDetails,
    #     'CourseInfo': cinfo
    # }
    return render(request, 'course/viewcourse.html', context)
Exemple #8
0
def viewTA(request, cinfo):
    Designation = getDesig(request, cinfo)
    if Designation == "UnRegStu":
        return HttpResponse(status=511)

    context = {}
    context = loginFLOW(request, context)
    if context['username'] == '':
        return HttpResponseRedirect(reverse('home:home'))

    username = context['username']

    user_ref = db.collection(u'Users').document(username).get()
    user_dict = user_ref.to_dict()

    try:
        TAList = db.collection(u'Courses').document(
            cinfo).get().to_dict()["TAList"]
    except:
        TAList = ""

    talist = list()

    for TA in TAList:
        talist.append(TA.get().to_dict())

    context['TA'] = talist
    context['CourseInfo'] = cinfo
    context['Designation'] = Designation
    # {
    #     'TA': talist,
    #     'CourseInfo': cinfo
    # }

    return render(request, 'course/viewTA.html', context)
Exemple #9
0
def saveNotice(request, uinfo):
    context = {}
    if request.method == 'POST':
        context = loginFLOW(request, context)

        if context['username'] != uinfo:
            return HttpResponse("You are not authorized")

        user_dict = db.collection(u'Users').document(uinfo).get().to_dict()

        if user_dict['Designation'] != 'Faculty' and 'isAdmin' not in user_dict:
            return HttpResponse("You are not authorized")

        new_notice = {
            'title': request.POST.get('title'),
            'text': request.POST.get('text'),
            'author': user_dict['FullName'],
            'created': datetime.datetime.now(),
        }

        notices_dict = db.collection(u'Homepage').document(
            u'NoticeBoard').get().to_dict()
        notices_dict['AllNotices'].append(new_notice)

        print(notices_dict)

        db.collection(u'Homepage').document(u'NoticeBoard').set(notices_dict)

        return HttpResponseRedirect("/home/noticeboard/")
    return HttpResponseRedirect(reverse('home:home'))
Exemple #10
0
def ViewCourseMaterial(request, cinfo):
    Designation = getDesig(request, cinfo)
    if Designation == "UnRegStu":
        return HttpResponse(status=511)

    context = {}
    context = loginFLOW(request, context)
    if context['username'] == '':
        return HttpResponseRedirect(reverse('home:home'))

    username = context['username']

    user_ref = db.collection(u'Users').document(username).get()
    user_dict = user_ref.to_dict()
    # Designation = user_dict['Designation']

    course_data = db.collection(u'Courses').document(cinfo).get().to_dict()

    course_data = db.collection(u'Courses').document(cinfo).get().to_dict()
    if not 'CourseMaterial' in course_data:
        CMaterials = []
    else:
        CMaterials = course_data['CourseMaterial']

    context['CMaterials'] = CMaterials
    context['CourseInfo'] = cinfo
    context['Designation'] = Designation
    # {
    #     'CMaterials': CMaterials,
    #     'CourseInfo': cinfo
    # }
    return render(request, 'course/viewcoursematerial.html', context)
Exemple #11
0
def StoreCMinDb(request, cinfo):
    context = {}
    context = loginFLOW(request, context)
    if context['username'] == '':
        return HttpResponseRedirect(reverse('home:home'))

    username = context['username']

    if request.method == 'POST':
        course_data = db.collection(u'Courses').document(cinfo).get().to_dict()
        newcm = {}
        newcm['Name'] = request.POST.get('filename')
        newcm['Url'] = request.POST.get('cmurl')

        if not 'CourseMaterial' in course_data:
            cm_array = [newcm]
            db.collection(u'Courses').document(cinfo).update(
                {u'CourseMaterial': cm_array})
        else:
            cm_array = course_data['CourseMaterial']
            cm_array.append(newcm)
            db.collection(u'Courses').document(cinfo).update(
                {u'CourseMaterial': cm_array})
        # print(newcm)
        # print(cm_array)

        return HttpResponseRedirect(
            reverse('course:view_course_material', kwargs={'cinfo': cinfo}))
    else:
        return HttpResponseRedirect(
            reverse('course:view_course_material', kwargs={'cinfo': cinfo}))
Exemple #12
0
def AddAssgn(request, cinfo):
    Designation = getDesig(request, cinfo)
    if Designation != "Faculty" and Designation != "TA":
        return HttpResponse(status=511)

    context = {}
    context = loginFLOW(request, context)
    if context['username'] == '':
        return HttpResponseRedirect(reverse('home:home'))

    username = context['username']
    context['CourseInfo'] = cinfo

    if request.method == 'POST':
        ref_prof = db.collection(u'Users').document(username)
        nxtID = len(
            list(
                db.collection(u'Courses').document(cinfo).collection(
                    u'Assignments').get())) + 1
        nextAssID = "AS{}".format(nxtID)
        data = {
            u'About': request.POST.get("About", ""),
            u'AssignmentID': nextAssID,
            u'Deadline': request.POST.get("Deadline", ""),
            u'Name': request.POST.get("Name", ""),
        }
        # aid = request.POST.get("AssignmentID", "")
        db.collection(u'Courses').document(cinfo).collection(
            u'Assignments').document(nextAssID).set(data)

        return HttpResponseRedirect(
            reverse('course:view_course', kwargs={'cinfo': cinfo}))

    return render(request, 'course/addassgnform.html', context)
Exemple #13
0
def dashboard(request):
    context = {}
    context = loginFLOW(request, context)
    if context['username'] == '':
        return HttpResponseRedirect(reverse('home:home'))

    username = context['username']

    user_ref = db.collection(u'Users').document(username).get()
    user_dict = user_ref.to_dict()
    Designation = user_dict['Designation']

    if Designation == "Faculty":
        ProfCourseList = user_dict['ProfCourseList']
        CourseDetails = []
        for course in ProfCourseList:
            CourseDetails.append(course.get().to_dict())
            print(course.get())

        context['CourseDetails'] = CourseDetails

        return render(request, 'course/main_page.html', context)

    elif Designation == "Student":
        if not 'CourseList' in user_dict:
            StudCourseList = []
        else:
            StudCourseList = user_dict['CourseList']

        # print(StudCourseList)
        RegisteredCourses = []
        TotalCourses = []
        TotalCourses1 = []
        for course in StudCourseList:
            RegisteredCourses.append(course['CourseID'].get().to_dict())

        Courses = db.collection(u'Courses').get()
        for course in Courses:
            TotalCourses1.append(course.to_dict())
        TACoursesL = []

        try:
            TACoursesList = db.collection(u'Users').document(
                username).get().to_dict()['CoursesListAsTA']
            for TA in TACoursesList:
                TACoursesL.append(TA.get().to_dict())
        except:
            pass

        for course in TotalCourses1:
            if course not in RegisteredCourses and course not in TACoursesL:
                TotalCourses.append(course)

        context['RegisteredCourses'] = RegisteredCourses
        context['TotalCourses'] = TotalCourses
        context['TACoursesList'] = TACoursesL

        return render(request, 'course/main_page_stud.html', context)
Exemple #14
0
def projectView(request, pinfo):
    project_ref = db.collection(u'Projects').document(pinfo).get()
    project_dict = project_ref.to_dict()

    context = {'Project': project_dict}
    context = loginFLOW(request, context)
    context['CreatorName'] = project_dict['Creator'].get().to_dict(
    )['FullName']
    return render(request, 'home/viewProject.html', context)
Exemple #15
0
def add_event(request, CourseID):
    context = {}
    context = loginFLOW(request, context)
    if context['username'] == '':
        return HttpResponseRedirect(reverse('home:home'))

    username = context['username']

    page_token = None
    while True:
        calendar_list = service.calendarList().list(
            pageToken=page_token).execute()
        for calendar_list_entry in calendar_list['items']:
            if calendar_list_entry['summary'] == CourseID:
                CalendarID = calendar_list_entry['id']
        page_token = calendar_list.get('nextPageToken')
        if not page_token:
            break

    if request.method == 'POST':
        Summary = request.POST['Summary']
        Location = request.POST['Location']
        Description = request.POST['Description']
        StartDate = request.POST['Start']
        EndDate = request.POST['End']

        event = {
            'summary': Summary,
            'location': Location,
            'description': Description,
            'start': {
                'dateTime': StartDate + 'T00:00:00+0530',
                'timeZone': 'America/Los_Angeles',
            },
            'end': {
                'dateTime': EndDate + 'T23:59:59+0530',
                'timeZone': 'America/Los_Angeles',
            },
            'visibility': 'public',
        }

        event = service.events().insert(calendarId=CalendarID,
                                        body=event).execute()
        return redirect('/discussion/courses/' + CourseID + '/events')

    elif request.method == 'GET':
        events_result = service.events().list(calendarId=CalendarID,
                                              singleEvents=True,
                                              orderBy='startTime').execute()
        events = events_result.get('items', [])
        context['events'] = events
        context['CourseID'] = CourseID
        context['CalendarID'] = CalendarID

        dateToday = datetime.today().strftime('%Y-%m-%d')
        context['dateToday'] = dateToday
        return render(request, 'discussion/add_event.html', context)
Exemple #16
0
def home(request):
    redirect_uri = request.build_absolute_uri(reverse('home:gettoken'))

    sign_in_url = get_signin_url(redirect_uri)
    data = db.collection(u'Homepage').document("homepage").get().to_dict()
    pics = db.collection(u'Homepage').document("HomeImages").get().to_dict()
    pics_list = [i for i in enumerate(pics['Image'])]
    context = {'sign_in_url': sign_in_url, 'data': data, 'pics': pics_list}
    context = loginFLOW(request, context)
    return render(request, 'home/home.html', context)
Exemple #17
0
def projects(request):
    context = {}
    projects = db.collection(u'Projects').get()
    project_list = []
    for x in projects:
        project = x.to_dict()
        project['id'] = x.id
        project_list.append(project)

    context['projects'] = project_list
    context = loginFLOW(request, context)
    return render(request, 'home/projects.html', context)
Exemple #18
0
def Add_Grade(request, cinfo, aid, gid):
    Designation = getDesig(request, cinfo)
    if Designation != "Faculty" and Designation != "TA":
        return HttpResponse(status=511)

    context = {}
    context = loginFLOW(request, context)
    if context['username'] == '':
        return HttpResponseRedirect(reverse('home:home'))

    username = context['username']
    context['Designation'] = Designation

    group_ref = db.collection(u'Courses').document(cinfo).collection(
        u'Assignments').document(aid).collection(u'Groups').document(gid)
    group_data = group_ref.get().to_dict()['StudentList']
    if request.method == "POST":
        for user in group_data:
            Igrade = user['Grade']
            user['Grade'] = int(
                request.POST.get(
                    user['StudentID'].get().to_dict()['username']))
            user_ref = user['StudentID']
            Course_Data = db.collection(u'Courses').document(
                cinfo).get().to_dict()['StudentList']
            for users in Course_Data:
                if users['StudentID'] == user['StudentID']:
                    users['Grade'] = users['Grade'] + user['Grade'] - Igrade
            data = {u'StudentList': Course_Data}
            db.collection(u'Courses').document(cinfo).update(data)
        data_main = {u'StudentList': group_data}
        db.collection(u'Courses').document(cinfo).collection(
            u'Assignments').document(aid).collection(u'Groups').document(
                gid).update(data_main)
        return HttpResponseRedirect(reverse('course:dashboard'))

    else:
        user_list = []
        for user in group_data:
            user_list.append(user['StudentID'].get().to_dict())

        context['user_list'] = user_list
        context['cinfo'] = cinfo
        context['aid'] = aid
        context['gid'] = gid
        # {
        #     'user_list': user_list,
        #     'cinfo': cinfo,
        #     'aid': aid,
        #     'gid': gid
        # }
        return render(request, 'course/addgrade.html', context)
Exemple #19
0
def create_calendar(request, CourseID):
    context = {}
    context = loginFLOW(request, context)
    if context['username'] == '':
        return HttpResponseRedirect(reverse('home:home'))

    username = context['username']

    calendar = {'summary': CourseID, 'timeZone': 'America/Los_Angeles'}

    created_calendar = service.calendars().insert(body=calendar).execute()
    print(created_calendar['id'])
    return redirect('/discussion/courses/' + CourseID + '/;')
Exemple #20
0
def addNotice(request, uinfo):
    context = {}
    context = loginFLOW(request, context)
    if context['username'] != uinfo:
        return HttpResponse("You are not authorized")

    user_dict = db.collection(u'Users').document(uinfo).get().to_dict()
    if 'isAdmin' in user_dict:
        context['isAdmin'] = "True"
    else:
        context['isAdmin'] = "False"
    context['Designation'] = user_dict['Designation']
    return render(request, 'home/addnotice.html', context)
Exemple #21
0
def UpdateGroup(request, cinfo, aid, gid):
    Designation = getDesig(request, cinfo)
    if Designation != "Faculty":
        return HttpResponse(status=511)

    context = {}
    context = loginFLOW(request, context)
    if context['username'] == '':
        return HttpResponseRedirect(reverse('home:home'))

    context['cinfo'] = cinfo
    context['aid'] = aid
    context['gid'] = gid
    context['Designation'] = Designation

    username = context['username']

    if request.method == 'POST':
        # ref_prof = db.collection(u'Users').document(username)
        data = {
            u'ProjectTitle': request.POST.get("ProjectTitle", ""),
            u'ProblemStatement': request.POST.get("ProblemStatement", "")
        }
        print(data)
        db.collection(u'Courses').document(cinfo).collection(
            u'Assignments').document(aid).collection(u'Groups').document(
                gid).update(data)
        group_ref = db.collection(u'Courses').document(cinfo).collection(
            u'Assignments').document(aid).collection(u'Groups').document(
                gid).get()
        GroupDetails = group_ref.to_dict()
        studs = GroupDetails['StudentList']
        StudentDetails = []
        for stud in studs:
            StudentDetails.append(stud['StudentID'].get().to_dict())
        context['cinfo'] = cinfo
        context['aid'] = aid
        context['gid'] = gid
        context['GroupDetails'] = GroupDetails
        context['StudentDetails'] = StudentDetails
        # {
        #     'cinfo' : cinfo,
        #     'aid' : aid,
        #     'GroupDetails' : GroupDetails,
        #     'StudentDetails' : StudentDetails,
        # }

        return render(request, 'course/viewgroup.html', context)

    return render(request, 'course/updategroupform.html', context)
Exemple #22
0
def editContact(request, uinfo):
    context = {}
    loginFLOW(request, context)
    if context['username'] == '':
        return HttpResponseRedirect(context['sign_in_url'])
    elif context['username'] != uinfo:
        return HttpResponse('You are not authorized')

    user_dict = db.collection(u'Users').document(
        context['username']).get().to_dict()
    contact_dict = db.collection(u'Homepage').document(
        u'contactUs').get().to_dict()

    if 'isAdmin' in user_dict:
        context["isAdmin"] = "True"
    else:
        context["isAdmin"] = "False"
    context["Designation"] = user_dict['Designation']

    if context['isAdmin'] == "False":
        return HttpResponse('Sorry, you do not have authorization rights')

    context['Contact'] = contact_dict
    return render(request, "home/editcontact.html", context)
Exemple #23
0
def projectDelete(request, pinfo):
    context = {}
    context = loginFLOW(request, context)

    if context['username'] == '':
        return HttpResponse("You are not logged in")

    project_dict = db.collection(u'Projects').document(pinfo).get().to_dict()
    user = project_dict['Creator'].get()

    if context['username'] != user.id:
        return HttpResponse("You are not authorized.")

    db.collection(u'Projects').document(pinfo).delete()
    return HttpResponseRedirect("/users/" + user.id + "/")
Exemple #24
0
def ViewAssgn(request, cinfo, aid):
    Designation = getDesig(request, cinfo)
    print(Designation)
    if Designation == "UnRegStu":
        return HttpResponse(status=511)

    context = {}
    context = loginFLOW(request, context)
    if context['username'] == '':
        return HttpResponseRedirect(reverse('home:home'))

    username = context['username']
    user_ref = db.collection(u'Users').document(username).get()
    user_dict = user_ref.to_dict()

    user_ref = db.collection(u'Users').document(username).get()
    user_dict = user_ref.to_dict()
    # Designation = user_dict['Designation']

    group_ref = db.collection(u'Courses').document(cinfo).collection(
        u'Assignments').document(aid).collection(u'Groups').get()
    GroupDetails = []
    for group in group_ref:
        GroupDetails.append(group.to_dict())

    context['GroupDetails'] = GroupDetails
    context['cinfo'] = cinfo
    context['aid'] = aid
    context['Designation'] = Designation
    # {
    #     'GroupDetails': GroupDetails,
    #     'cinfo': cinfo,
    #     'aid': aid,
    # }
    MyGroupList = []

    if Designation == 'Student':
        for group in GroupDetails:
            studs = group['StudentList']
            for stud in studs:
                if stud['StudentID'] == db.collection(u'Users').document(
                        username):
                    MyGroupList.append(group)
    else:
        MyGroupList = GroupDetails

    context['MyGroupList'] = MyGroupList
    return render(request, 'course/viewassgn.html', context)
Exemple #25
0
def faculty(request):
    user_ref = db.collection(u'Users').get()
    user_list = []
    count = 0
    counter_list = []
    for user in user_ref:
        user_dict = user.to_dict()
        if user_dict["Designation"] == 'Faculty':
            user_list.append(user.to_dict())
            counter_list.append(count % 3)
            count += 1
    uc_list = zip(user_list, counter_list)
    context = {'uc_list': uc_list}
    context = loginFLOW(request, context)

    return render(request, 'home/people.html', context)
Exemple #26
0
def AddCourseMaterial(request, cinfo):
    Designation = getDesig(request, cinfo)
    if Designation != "Faculty" and Designation != "TA":
        return HttpResponse(status=511)

    context = {}
    context = loginFLOW(request, context)
    if context['username'] == '':
        return HttpResponseRedirect(reverse('home:home'))

    username = context['username']

    context = {
        'CourseInfo': cinfo,
    }
    return render(request, 'course/addcoursematerial.html', context)
Exemple #27
0
def projectEdit(request, pinfo):
    context = {}
    context = loginFLOW(request, context)

    if context['username'] == '':
        return HttpResponse("You are not logged in")

    project_dict = db.collection(u'Projects').document(pinfo).get().to_dict()
    user = project_dict['Creator'].get()

    if context['username'] != user.id:
        return HttpResponse("You are not authorized.")

    context['project'] = project_dict

    return render(request, "home/editproject.html", context)
Exemple #28
0
def RandomGroups(request, cinfo, aid):
    Designation = getDesig(request, cinfo)
    if Designation != "Faculty" and Designation != "TA":
        return HttpResponse(status=511)

    context = {}
    context = loginFLOW(request, context)
    if context['username'] == '':
        return HttpResponseRedirect(reverse('home:home'))

    username = context['username']
    context['Designation'] = Designation
    context['aid'] = aid

    if request.method == 'GET':
        context['cinfo'] = cinfo
        return render(request, 'course/random_groups.html', context)
    elif request.method == 'POST':
        NumGroups = request.POST['NumGroups']
        NumGroups = int(NumGroups)

        StudList = db.collection(u'Courses').document(
            cinfo).get().to_dict()['StudentList']
        random.shuffle(StudList)

        GroupList = []
        for i in range(NumGroups):
            GroupList.append([])
        for i in range(len(StudList)):
            GroupList[i % NumGroups].append(StudList[i])

        print(GroupList)

        for i in range(len(GroupList)):
            if len(GroupList[i]) > 0:
                data = {
                    u'GroupID': 'GID_' + str(i + 1),
                    u'ProblemStatement': '',
                    u'ProjectTitle': '',
                    u'StudentList': GroupList[i],
                }

                db.collection(u'Courses').document(cinfo).collection(
                    u'Assignments').document(aid).collection(
                        u'Groups').document('GID_' + str(i + 1)).set(data)

        return redirect('/courses/' + cinfo + '/assignments/' + aid)
Exemple #29
0
def group(request, CourseID, AssignmentID, GroupID):
    context = {}
    context = loginFLOW(request, context)
    if context['username'] == '':
        return HttpResponseRedirect(reverse('home:home'))

    username = context['username']

    context['GroupID_json'] = mark_safe(json.dumps(GroupID))
    context['CourseID_json'] = mark_safe(json.dumps(CourseID))
    context['AssignmentID_json'] = mark_safe(json.dumps(AssignmentID))
    # return render(request, 'discussion/group.html', {
    #     'GroupID_json' : mark_safe(json.dumps(GroupID)),
    #     'CourseID_json' : mark_safe(json.dumps(CourseID)),
    #     'AssignmentID_json' : mark_safe(json.dumps(AssignmentID)),
    # })
    return render(request, 'discussion/group.html', context)
Exemple #30
0
def delete_event(request, CourseID, EventID):
    context = {}
    context = loginFLOW(request, context)
    if context['username'] == '':
        return HttpResponseRedirect(reverse('home:home'))

    username = context['username']

    page_token = None
    while True:
        calendar_list = service.calendarList().list(
            pageToken=page_token).execute()
        for calendar_list_entry in calendar_list['items']:
            if calendar_list_entry['summary'] == CourseID:
                CalendarID = calendar_list_entry['id']
        page_token = calendar_list.get('nextPageToken')
        if not page_token:
            break

    service.events().delete(calendarId=CalendarID, eventId=EventID).execute()
    return redirect('/discussion/courses/' + CourseID + '/events')