Exemplo n.º 1
0
def add_class_time(request):
    context = {}
    context['teachers_pending'] = check_techer_panding()
    context['students_pending'] = check_student_panding()
    if auth_fun.is_authenticate(request.user):
        if auth_fun.redirect_permision(request) == 'adminHome':
            if request.POST:
                form = add_class_time_form(request.POST)
                if form.is_valid():
                    classtime = form.save()
                    request.session['pre_classtime'] = classtime.id
                    if classtime:
                        messages.add_message(request, messages.SUCCESS,
                                             "Class time added to database")
                        form = add_class_time_form()
                        if request.POST.get(
                                'next',
                                ''):  # Check next btn is pressed or not
                            return redirect('add_class')
                        return redirect('add_class_time')
            else:
                form = add_class_time_form()
            context['form'] = form
            return render(request, 'admin/add_class_time.html', context)
        else:
            return redirect(auth_fun.redirect_permision(request))
    else:
        return redirect('login')
Exemplo n.º 2
0
def add_vedio(request):
    context = {}
    context['teachers_pending'] = check_techer_panding()
    context['students_pending'] = check_student_panding()
    if auth_fun.is_authenticate(request.user):
        if auth_fun.redirect_permision(request) == 'adminHome':
            if request.POST:
                classlink_id = request.POST.get('class')
                vedio_title = request.POST.get('title')
                vedio_url = request.POST.get('url')
                classlink = ClassLink.objects.get(pk=classlink_id)
                vedio = Vedio()
                vedio.classlink = classlink
                vedio.title = vedio_title
                vedio.url = vedio_url
                vedio.save()
                students = classlink.subject.batch.user_set.all()
                msg = classlink.subject.name + " class recoding is added"
                notify.send(msg=msg, users=students)
                messages.add_message(request, messages.SUCCESS, "Vedio added")
                return redirect('add_vedio')
            else:
                context['batches'] = Batch.objects.all()
            return render(request, 'admin/add_vedios.html', context)
        else:
            return redirect(auth_fun.redirect_permision(request))
    else:
        return redirect('login')
Exemplo n.º 3
0
def subject_add(request):
    context = {}
    context['teachers_pending'] = check_techer_panding()
    context['students_pending'] = check_student_panding()
    if auth_fun.is_authenticate(request.user):
        if auth_fun.redirect_permision(request) == 'adminHome':
            if request.POST:
                req_subjects = list(request.POST.get('subjects').split(','))
                req_batch = request.POST.get('batch')
                for req_subject in req_subjects:
                    subject = Subject()
                    subject.name = req_subject
                    subject.batch = Batch.objects.get(pk=req_batch)
                    subject.save()
                    request.session['pre_subject'] = subject.id
                    request.session['pre_batch'] = subject.batch.id
                    message = ""
                for req_subject in req_subjects:
                    message += req_subject + ', '
                messages.add_message(request, messages.SUCCESS,
                                     message + " Subjects added ")
                if request.POST.get('next', ''):
                    return redirect('assign_teacher_and_add_url')

            else:
                context['batches'] = Batch.objects.all()
                if request.session.get('batch', ''):
                    context['pre_batch'] = request.session['batch']
                else:
                    context['pre_batch'] = 0
            return render(request, 'admin/add_subject.html', context)
        else:
            return redirect(auth_fun.redirect_permision(request))
    else:
        return redirect('login')
Exemplo n.º 4
0
def all_batches(request):
    context = {}
    context['teachers_pending'] = check_techer_panding()
    context['students_pending'] = check_student_panding()
    if auth_fun.is_authenticate(request.user):
        if auth_fun.redirect_permision(request) == 'adminHome':
            batches = Batch.objects.all()
            context['batches'] = batches
            return render(request, 'admin/batches.html', context)
        else:
            return redirect(auth_fun.redirect_permision(request))
    else:
        return redirect('login')
Exemplo n.º 5
0
def teachers(request):
    context = {}
    context['teachers_pending'] = check_techer_panding()
    context['students_pending'] = check_student_panding()
    if auth_fun.is_authenticate(request.user):
        if auth_fun.redirect_permision(request) == 'adminHome':
            context['teachers'] = User.objects.filter(is_teacher=True,
                                                      teacher_aprove=True)
            return render(request, 'admin/teachers.html', context)
        else:
            return redirect(auth_fun.redirect_permision(request))
    else:
        return redirect('login')
Exemplo n.º 6
0
def login_view(request):
    context = {}
    user = request.user
    if auth_fun.is_authenticate(user):
        return redirect(auth_fun.redirect_permision(request))
    else:
        if request.POST:
            form = Log_in_Form(request.POST)
            if form.is_valid():
                email = form.cleaned_data.get('email')
                password = form.cleaned_data.get('password')
                user = authenticate(email=email, password=password)
                if user:
                    login(request, user)
                    if auth_fun.is_authenticate(user):
                        return redirect(auth_fun.redirect_permision(request))
                else:
                    messages.add_message(request, messages.ERROR,
                                         'Invalid Login')
        else:
            form = Log_in_Form()
        context['form'] = form
    return render(request, 'accounts/login.html', context)
Exemplo n.º 7
0
def batch_student(request, id):
    context = {}
    context['teachers_pending'] = check_techer_panding()
    context['students_pending'] = check_student_panding()
    if auth_fun.is_authenticate(request.user):
        if auth_fun.redirect_permision(request) == 'adminHome':
            batch = Batch.objects.get(pk=id)
            students = batch.user_set.all()
            context['students'] = students
            return render(request, 'admin/batch_student.html', context)
        else:
            return redirect(auth_fun.redirect_permision(request))
    else:
        return redirect('login')
Exemplo n.º 8
0
def delete_student(request, id):
    context = {}
    context['teachers_pending'] = check_techer_panding()
    context['students_pending'] = check_student_panding()
    if auth_fun.is_authenticate(request.user):
        if auth_fun.redirect_permision(request) == 'adminHome':
            user = User.objects.get(pk=id)
            if user:
                user.delete()
            return redirect('students')
        else:
            return redirect(auth_fun.redirect_permision(request))
    else:
        return redirect('login')
Exemplo n.º 9
0
def index(request):
    context = {}
    context['students'] = User.objects.filter(is_student=True).count()
    context['teachers'] = User.objects.filter(is_teacher=True).count()
    context['classes'] = ClassLink.objects.filter(classdate=date.today())
    context['vedios'] = Vedio.objects.filter(created_at=date.today())
    context['teachers_pending'] = check_techer_panding()
    context['students_pending'] = check_student_panding()
    if auth_fun.is_authenticate(request.user):
        if auth_fun.redirect_permision(request) == 'adminHome':

            return render(request, 'admin/index.html', context)
        else:
            return redirect(auth_fun.redirect_permision(request))
    else:
        return redirect('login')
Exemplo n.º 10
0
def add_class(request):
    context = {}
    context['teachers_pending'] = check_techer_panding()
    context['students_pending'] = check_student_panding()
    context['batches'] = Batch.objects.all()
    if auth_fun.is_authenticate(request.user):
        if auth_fun.redirect_permision(request) == 'adminHome':
            if request.POST:
                subject = Subject.objects.get(pk=request.POST.get('subject'))
                classdate = datetime.strptime(request.POST.get('date'),
                                              '%d/%m/%Y').date()
                classtime = Classtime.objects.get(
                    pk=request.POST.get('classtime'))
                classlink = ClassLink()
                classlink.subject = subject
                classlink.classdate = classdate
                classlink.classtime = classtime
                classlink.save()
                messages.add_message(
                    request, messages.SUCCESS, classlink.subject.name +
                    " class added to " + classlink.subject.batch.name)
                batch = classlink.subject.batch
                students = batch.user_set.all()
                msg = classlink.subject.name + " class link is added "
                notify.send(msg=msg, users=students)
            else:
                if request.session.get(
                        'pre_batch', '') and request.session.get(
                            'pre_subject', '') and request.session.get(
                                'pre_classtime', ''):
                    batch = Batch.objects.get(pk=request.session['pre_batch'])
                    context['subjects'] = batch.subject_set.all()
                    context['pre_batch'] = request.session['pre_batch']
                    context['pre_subject'] = request.session['pre_subject']
                    context['pre_classtime'] = request.session['pre_classtime']

                    del request.session['pre_batch']
                    del request.session['pre_subject']
                    del request.session['pre_classtime']
                context['batches'] = Batch.objects.all()
                context['classtimes'] = Classtime.objects.all()
            return render(request, 'admin/add_class.html', context)
        else:
            return redirect(auth_fun.redirect_permision(request))
    else:
        return redirect('login')
Exemplo n.º 11
0
def notifications(request):
    context = {}
    context['teachers_pending'] = check_techer_panding()
    context['students_pending'] = check_student_panding()
    if auth_fun.is_authenticate(request.user):
        if auth_fun.redirect_permision(request) == 'studenthome':
            notifications = request.user.notification_set.order_by(
                '-created_at')
            nootification_count = notifications.filter(read=False).count()
            context['notifications'] = notifications
            context['nootification_count'] = nootification_count
            notifications.update(read=True)
            return render(request, 'students/notifications.html', context)
        else:
            return redirect(auth_fun.redirect_permision(request))
    else:
        return redirect('login')
Exemplo n.º 12
0
def index(request):
    context = {}
    context['teachers_pending'] = check_techer_panding()
    context['students_pending'] = check_student_panding()
    if auth_fun.is_authenticate(request.user):
        if auth_fun.redirect_permision(request) == 'teacherhome':
            classtimes_temp = Classtime.objects.all()
            classtimes_index = []
            classtimes = []
            for classtime in classtimes_temp:
                classtimes_index.append(classtime.id)
                classtimes.append(classtime)

            context['classtimes'] = classtimes

            context['user'] = request.user
            user = request.user
            today_date = date.today()
            after_week = today_date + timedelta(6)

            classlinks = user.classlink_set.filter(classdate__gte=today_date,
                                                   classdate__lte=after_week)
            l = len(classtimes_index)
            days = ['Sat', 'Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri']
            classroutine = {}
            for day in days:
                classroutine[day] = ["" for i in range(l)]

            subjects = []
            for classlink in classlinks:
                d = classlink.classdate.strftime("%a")
                t = classtimes_index.index(classlink.classtime.id)
                classroutine[d][t] = classlink
                if classlink.subject not in subjects:
                    subjects.append(classlink.subject)
            context['days'] = days
            context['classroutine'] = classroutine
            context['subjects'] = subjects

            return render(request, 'teachers/index.html', context)
        else:
            return redirect(auth_fun.redirect_permision(request))
    else:
        return redirect('login')
Exemplo n.º 13
0
def aprove_student(request, id):
    context = {}
    context['teachers_pending'] = check_techer_panding()
    context['students_pending'] = check_student_panding()
    if auth_fun.is_authenticate(request.user):
        if auth_fun.redirect_permision(request) == 'adminHome':
            if request.POST:
                user = User.objects.get(pk=request.POST.get('user_id'))
                if user:
                    user.student_aprove = True
                    batch = Batch.objects.filter(
                        pk=request.POST.get('batch_id')).first()
                    if batch:
                        user.batch = batch
                        batch.enrolled += 1
                        batch.save()
                    user.save()
                    if request.POST.get('assign', ''):
                        return redirect('students')
                    return redirect('students_pending')
                else:
                    messages.add_message(
                        request, messages.ERROR,
                        'User not found. Something went to wrong')
                    return redirect('error_page')  #user Not found
            else:
                user = User.objects.get(pk=id)
                if user:
                    context['user'] = user
                    batches = Batch.objects.filter(capacity__gt=0)
                    context['batches'] = batches
                else:
                    messages.add_message(
                        request, messages.ERROR,
                        'User not found. Something went to wrong')
                    return redirect('error_page')  #user Not found
            return render(request, 'admin/aprove_student.html', context)
        else:
            return redirect(auth_fun.redirect_permision(request))
    else:
        return redirect('login')
Exemplo n.º 14
0
def assign_teacher_and_add_url(request):
    context = {}
    context['teachers_pending'] = check_techer_panding()
    context['students_pending'] = check_student_panding()
    context['batches'] = Batch.objects.all()
    context['teachers'] = User.objects.filter(is_teacher=True,
                                              teacher_aprove=True,
                                              is_active=True)
    context['pre_batch'] = 0
    context['pre_subject'] = 0
    if auth_fun.is_authenticate(request.user):
        if auth_fun.redirect_permision(request) == 'adminHome':
            if request.POST:
                subject = request.POST.get('subject_select')
                teacher = request.POST.get('teacher')
                url = request.POST.get('url')
                subject = Subject.objects.get(pk=subject)
                subject.teacher = User.objects.get(pk=teacher)
                subject.url = url
                subject.save()
                messages.add_message(
                    request, messages.SUCCESS,
                    "Teacher and classlink added successfully")
                if request.POST.get('next', ''):
                    return redirect('add_class_time')
            else:
                if request.session.get('pre_subject',
                                       '') and request.session.get(
                                           'pre_batch', ''):
                    context['pre_batch'] = request.session.get('pre_batch', '')
                    context['pre_subject'] = request.session.get(
                        'pre_subject', '')
                    context['subjects'] = Batch.objects.get(
                        pk=context['pre_batch']).subject_set.all()
            return render(request, 'admin/assign_teache_and_url.html', context)
        else:
            return redirect(auth_fun.redirect_permision(request))
    else:
        return redirect('login')
Exemplo n.º 15
0
def add_notice(request):
    context = {}
    context['teachers_pending'] = check_techer_panding()
    context['students_pending'] = check_student_panding()

    if auth_fun.is_authenticate(request.user):
        if auth_fun.redirect_permision(request) == 'adminHome':

            if request.POST:
                form = add_notice_form(request.POST)
                if form.is_valid():
                    notice = form.save()
                    messages.add_message(request, messages.SUCCESS,
                                         notice.notice + ' added successfully')
            else:
                form = add_notice_form()

            context['form'] = form
            return render(request, 'admin/add_notice.html', context)
        else:
            return redirect(auth_fun.redirect_permision(request))
    else:
        return redirect('login')
Exemplo n.º 16
0
def add_batch(request):
    context = {}
    context['teachers_pending'] = check_techer_panding()
    context['students_pending'] = check_student_panding()
    if auth_fun.is_authenticate(request.user):
        if auth_fun.redirect_permision(request) == 'adminHome':
            if request.POST:
                form = addBatchForm(request.POST)
                if form.is_valid():
                    batch = form.save()
                    if request.POST.get('next', ''):
                        request.session['batch'] = batch.id
                        return redirect('subject_add')
                    return redirect('all_batches')
                else:
                    context['form'] = form
            else:
                form = addBatchForm()
                context['form'] = form
            return render(request, 'admin/add_batch.html', context)
        else:
            return redirect(auth_fun.redirect_permision(request))
    else:
        return redirect('login')
Exemplo n.º 17
0
def index(request):
    context = {}
    context['teachers_pending'] = check_techer_panding()
    context['students_pending'] = check_student_panding()
    if auth_fun.is_authenticate(request.user):
        if auth_fun.redirect_permision(request) == 'studenthome':
            today_date = date.today()
            after_week = today_date + timedelta(6)
            user = request.user

            #For showing notifications
            notifications = user.notification_set.order_by('created_at')
            nootification_count = notifications.filter(read=False).count()
            context['notifications'] = notifications
            context['nootification_count'] = nootification_count

            #rendering notices for this student/user
            notices = Notice.objects.filter(published_at__lte=today_date)
            notices_all = notices.filter(
                batch=None)  # find all notice that assign for all
            notice_batch = notices.filter(
                batch=request.user.batch)  # find all notice for this batch
            notice_all = notices_all | notice_batch
            context['notices'] = notice_all

            days = ['Sat', 'Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri']
            context['days'] = days  # For table Heading render this

            context['user'] = request.user

            #Select all subject according to user batch
            batch = user.batch
            subjects = batch.subject_set.all()
            context[
                'subjects'] = subjects  # For vedios we need to render it also

            # get all classlinks according to subjects  wchich is from today to next 1 week
            classlinks = ClassLink.objects.none()

            for subject in subjects:
                temp = subject.classlink_set.filter(classdate__gte=today_date,
                                                    classdate__lte=after_week)
                classlinks = classlinks | temp

            # Makign classroutine that contains classtime as a key and in every cell contains a classlink
            classroutine = {}
            for classlink in classlinks:
                d = days.index(classlink.classdate.strftime(
                    "%a"))  # find the days index from days list
                t = classlink.classtime
                if t in classroutine.keys():
                    classroutine[t][d] = classlink
                else:
                    classroutine[t] = ["" for i in range(7)]
                    classroutine[t][d] = classlink

            context['classroutine'] = classroutine

            return render(request, 'students/index.html', context)
        else:
            return redirect(auth_fun.redirect_permision(request))
    else:
        return redirect('login')