Stripped personal data from development repository
Samo Penic
2019-02-20 83c3f647c35477564b77cbc5b36d37d793d5442a
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
from django.shortcuts import render, get_object_or_404
from django.contrib.admin.views.decorators import staff_member_required
from django.utils.decorators import method_decorator
from django.contrib.auth.mixins import LoginRequiredMixin
from django.contrib.auth.models import User
from django.views import generic
from django.urls import reverse
from django.http import HttpResponseRedirect
from .forms import StudentUploadForm
from django.contrib.auth.decorators import login_required
# Create your views here.
 
 
@method_decorator(staff_member_required, name="dispatch")
class StudentListView(LoginRequiredMixin, generic.ListView):
    model = User
    template_name = "organization/studentlist.html"
 
    def get_queryset(self):
        return User.objects.all()  # Here add filtering
 
 
 
def handle_uploaded_file(f):
    cont=""
    for chunk in f.chunks():
        cont=cont+bytes.decode(chunk, 'utf8')
 
    for line in cont.split('\n'):
        fields=line.strip().split(',')
        #print(fields)
        if len(fields)!=5:
            continue
        try:
            u=User.objects.create_user(username=fields[2], first_name=fields[1], last_name=fields[0], email=fields[3], password=fields[4])
        except:
            continue
 
    pass
 
 
# Upload form
#@login_required
@staff_member_required
def studentupload_view(request):
 
    if request.method == "POST":
        form = StudentUploadForm(request.POST, request.FILES)
        if form.is_valid():
            for f in request.FILES.getlist("file_field"):
                handle_uploaded_file(f)
        return HttpResponseRedirect(reverse("studentlist"))
    else:
        form = StudentUploadForm()
    context = {"form": form}
    return render(request, "organization/studentupload.html", context)
 
 
 
 
#Login Handler
@login_required
def loginlandingpage(request):
    """Simple redirector to figure out where the user goes next."""
    if request.user.is_staff:
        return HttpResponseRedirect(reverse('examlist'))
    else:
        return HttpResponseRedirect(reverse('studentpages'))