예제 #1
0
파일: tests.py 프로젝트: glukagen/leanagile
 def _create_student(self, prefix=''):
     name = "%s_%s" % (self.name, prefix)
     user = User(first_name=name, last_name=name, username=name)
     user.save()
     student = Student(user=user, about_me=name, specialities=name)
     student.save()
     return student
예제 #2
0
def upload_student_sheet(request):
    fileobj = request.FILES['file']
    try:
        wb = xlrd.open_workbook(file_contents=fileobj.read())
        for sheet in wb.sheets():
            depart = Department.objects.get(name=sheet.name)
            frow = sheet.row_values(0)
            year = frow[0]
            req_pubcourse = frow[2]
            req_pubelective = frow[4]
            req_procourse = frow[6]
            req_proelective = frow[8]

            for rind in range(2, sheet.nrows):
                row = sheet.row_values(rind)
                spec = Speciality.objects.get_or_create(
                            name=row[3],
                            department=depart
                        )
                if spec[1]:
                    spec[0].save()
                    
                try:
                    user = User.objects.get(username=row[0])
                    user.set_password(row[2][-6:])
                except User.DoesNotExist:
                    user = User.objects.create_user(username=row[0],
                            password=row[2][-6:])
                user.save()

                meta = StudentMeta.objects.get_or_create(
                            year=year,
                            req_pubcourse=req_pubcourse,
                            req_pubelective=req_pubelective,
                            req_procourse=req_procourse,
                            req_proelective=req_proelective,
                            major=spec[0]
                        )[0]
                try:
                    stud = Student.objects.get(student_name=row[1], user=user)
                    if stud.student_meta is not meta:
                        stud.student_meta = meta
                        stud.save()
                except Student.DoesNotExist:
                    stud = Student(student_name=row[1], user=user,
                            student_meta=meta)
                    stud.save()

    except xlrd.XLRDError:
        return HttpResponseBadRequest('xls file error')
    except:
        return HttpResponseBadRequest('Error occur')

    return {
        'valid': True,
    }
예제 #3
0
    def setUp(self):
        self.student_a = Student(
            first_name="Tiffany",
            last_name="Jeruto",
            date_of_birth=datetime.date(2000, 6, 24),
            registration_number="254016",
            Email="*****@*****.**",
            phone_number="0789647745",
            place_of_residence="Rongai",
            guardian_phone="0789567484",
            id_number=345378625,
            date_joined=datetime.date.today(),
        )

        self.student_b = Student(
            first_name="Clay",
            last_name="Jensen",
            date_of_birth=datetime.date(1999, 7, 25),
            registration_number="254017",
            Email="*****@*****.**",
            phone_number="0789765945",
            place_of_residence="Roysambu",
            guardian_phone="0780007684",
            id_number=3453734789,
            date_joined=datetime.date.today(),
        )

        self.python = Course(name="Python",
                             duration_in_months=10,
                             Course_number="1001",
                             description="Django and Flask frameworks")

        self.javascript = Course(
            name="Javascript",
            duration_in_months=10,
            Course_number="1002",
            description="Vanilla javascript and frameworks")

        self.hardware = Course(name="Hardware",
                               duration_in_months=10,
                               Course_number="1003",
                               description=" Product design using Fusion 360")

        self.teacher = Teacher(first_name="James",
                               last_name="Mwai",
                               place_of_residence="Kilimani",
                               phone_number="0723456786",
                               Email="*****@*****.**",
                               id_number=3128956743,
                               profession="Google Expert",
                               registration_number="2344",
                               date_joined=datetime.date.today())
예제 #4
0
 def save(self, user):
     student = Student()
     student.user = user
     student.college = self.cleaned_data['college']
     student.course = self.cleaned_data['course']
     student.batch_start_year = self.cleaned_data['batch_start_year']
     student.save()
예제 #5
0
    def handle(self, *args, **kwargs):
        num_students = kwargs['num_students']

        Student.objects.all().delete()
        groups = list(Group.objects.all())

        try:
            for _ in range(num_students):
                Student.generate_student(groups)

        except Exception as ex:
            raise CommandError('Generate students failed: "%s"' % ex)

        self.stdout.write(self.style.SUCCESS(f'Successfully generated {num_students} students'))
예제 #6
0
def register(request):
    if request.method == 'POST':

        username = request.POST['username']
        first_name = request.POST['first_name']
        last_name = request.POST['last_name']
        email = request.POST['email']
        phone = request.POST['phone']
        isEmployer = request.POST['isEmployer']
        password = request.POST['passwd1']
        password2 = request.POST['passwd2']
        if password == password2:
            if CustomUser.objects.filter(username=username).exists():
                messages.error(request, 'Ta nazwa uzytkownika jest zajeta, sprobuj innej')
                return redirect('register')
            else:
                if CustomUser.objects.filter(email=email).exists():
                    messages.error(request, 'Ten email akutalnie wystepuje w naszym systemie, sprobuj inny')
                    return redirect('register')
                else:
                    if len(username) > 150 or len(username) < 3:
                        messages.error(request, 'Nazwa uzytkownika powinna byc dluzsza od 3 znakow i krotsza od 150')
                    else:
                        if len(first_name) > 30:
                            messages.error(request, 'Imie powinno zawierac mniej niz 30 znakow')
                        else:
                            if len(last_name) > 150:
                                messages.error(request, 'Nazwisko powinno zawierac mniej niz 150 znakow')
                            else:
                                if len(email) > 254:
                                    messages.error(request, 'Adres email jest za dlugi')
                                else:
                                    if len(phone) > 20:
                                        messages.error(request, 'Numer telefonu jest za dlugo gosciu')
                                    else:
                                        user = CustomUser.objects.create_user(password=password, username=username, first_name=first_name, last_name = last_name, email = email, isEmployer=isEmployer, phone=phone)
                                        user.save()
                                        if isEmployer == 'True':
                                            company = Company(user=user, email=email)
                                            company.save()
                                        else:
                                            student = Student(user=user, name=first_name, surname=last_name, email=email)
                                            student.save()
                                        messages.success(request, 'Rejestracja przebiegla pomyslnie')
                                        return redirect('login')
                                    
        else:
            messages.error(request, 'Hasla nie zgadzaja sie')
            return redirect('register')
    return render(request, 'users/register.html')
예제 #7
0
 def test_authenticate_fail(self):
     auth = authentication.Authentication()
     student = Student(registrationNo='2017bcs042',
                       fname='d',
                       lname='j',
                       email='*****@*****.**',
                       mobile='1234567890',
                       city='nanded',
                       state='maha')
     student.save()
     studentId = Student.objects.get(email='*****@*****.**').studentId
     response = auth.create_token('student', studentId, '*****@*****.**')
     token_decode = self.client.get('/req/auth/ee' + response['Token'])
     self.assertEqual(json.loads(token_decode.content)['Status'], 400)
예제 #8
0
파일: views.py 프로젝트: kotamani/demo12
def regprocessv(request):
    #1. Get data from html form
    v1 = request.GET.get('n1')
    v2 = request.GET.get('n2')
    v3 = request.GET.get('n3')
    v4 = request.GET.get('n4')

    try:
        x = Student.objects.get(userid=v2)
        return render(request, 'regerror.html')
    except ObjectDoesNotExist:
        obj = Student(fullname=v1, pwd=v3, address=v4, userid=v2)
        obj.save()
        return render(request, 'regsuccess.html')
예제 #9
0
def insert(request):
   if request.POST:
      post = request.POST
      new_student = Student(
         num = post["num"],
         name = post["name"],
         chinese = post["chinese"],
         math = post["math"],
         english = post["english"],
         physics = post["physics"],
         chemistry = post["chemistry"],
         allscore = int(post["chinese"])+int(post["math"])+int(post["english"])+int(post["physics"])+int(post["chemistry"]))
      new_student.save()
   return render(request, 'insert.html')
예제 #10
0
def registration(request):
    if request.method == 'POST':
        StudentImage = request.FILES['txtimageurl']
        filesystem = FileSystemStorage()
        filename = filesystem.save(StudentImage.name, StudentImage)
        url = filesystem.url(filename)
        users = User.objects.all()
        for user in users:
            if user.username == request.POST['txtusername']:
                messages.warning(request, "User already exist")
                return render(request, 'client/registration-form.html')
        # User Creation
        user = User.objects.create_user(request.POST['txtusername'],
                                        request.POST['txtemail'],
                                        request.POST['txtpassword'])
        group = Group.objects.get(name="Student")
        user.groups.add(group)
        # Name split and join
        Name = request.POST['txtfullname'].split()
        if len(Name) > 1:
            user.first_name = Name[0]
            user.last_name = " ".join(Name[1:])
        else:
            user.first_name = " ".join(Name)
        user.save()
        student = Student(
            StudentName=request.POST['txtfullname'],
            UserId_id=user.id,
            # StudentUserName      = request.POST['txtusername'],
            # StudentPassword      = request.POST['txtpassword'],
            DepartmentName_id=request.POST['dropdowndepartment'],
            SubDepartmentName_id=request.POST['dropdownsubdepartment'],
            StudentImageName=filename,
            StudentImage=url,
            StudentGender=request.POST['gender'],
            StudentPhoneNumber=request.POST['txtphoneno'],
            StudentEmail=request.POST['txtemail'],
            StudentAddress=request.POST['txtaddress'],
            StudentCity=request.POST['txtcityname'])
        student.save()
        return redirect('home')
    else:
        department_data = Department.objects.all()
        subdepartment_data = SubDepartment.objects.all()
        return render(
            request, 'client/registration-form.html', {
                'department_data': department_data,
                'subdepartment_data': subdepartment_data
            })
예제 #11
0
	def save(self):
		try:
			student_name      = self.validated_data['student_name']
			department        = self.validated_data['department']
			contact           = self.validated_data['contact']
	
			studentinfo = Student(
								student_name=student_name,
								department=department,
								contact=contact
								)
			studentinfo.save()
			return studentinfo
		except KeyError:
			raise serializers.ValidationError({"response": "this invalid somethings!!!!!"})
예제 #12
0
def GetStudVal(request):
    id = request.POST.get("sid")
    fname = request.POST.get("name")
    course = request.POST.get("course")
    mark = request.POST.get("total")

    ob = Student(name=fname, course=course, marks=mark, rollnum=id)
    ob.save()

    context = {}
    data = Student.objects.all()
    context['data'] = data
    print(ob.name)

    return render(request, 'Student/Output.html', context)
def issue_this_book(request):
     if (request.method == "POST"):
        book_name = request.POST['book_name'].replace('-',' ')
        book = Books.objects.filter(title=book_name)
        student_name = request.POST['student_name']

        book_to_update = Books.objects.get(id = book[0].id)
        book_to_update.count -= 1
        book_to_update.save()

        student = Student(student_name = student_name, book_id = book[0].id, date_issued = datetime.datetime.now())
        student.save()

        messages.success(request, 'Book '+book_name+' issued successfully to ' + student_name)
        return redirect('/')
예제 #14
0
파일: views.py 프로젝트: xumaolin/BSStu
def add_student(request):
    if request.method == 'POST':
        student = Student()
        student.user_number = request.POST['number']
        student.password = request.POST['password']
        student.save()
        profile = StudentProfile()
        profile.user = student
        profile.username = request.POST['username']
        profile.email = request.POST['email']
        profile.phone = request.POST['phone']
        profile.save()
        return redirect('student_manage')
    else:
        return render_to_response('manage/new.html', RequestContext(request))
예제 #15
0
 def upload_student(self, file_path, teacher_id):
     wb = openpyxl.load_workbook(file_path)  # 打开excel
     ws = wb.active  # 选中第一个sheet
     rows = ws.max_row  # 获取行数
     columns = ws.max_column  # 获取列数
     student_list = []
     repetition = 0
     # 从第2行开始遍历每行
     for row in ws.iter_rows(min_row=2,
                             min_col=1,
                             max_row=rows,
                             max_col=columns):
         data = [i.value for i in row]  # 获取每一行数据
         # 取出重复数据
         if Student.objects.filter(student_num=data[0]).exists():
             repetition += 1
             continue
         # 写入User表
         user = User(
             username=data[0],  # 以学号作为用户名,防止重复
             password=make_password(settings.STUDENT_INIT_PASSWORD))
         user.save()  # 存入数据库
         # 写入student表
         student = Student(
             student_num=data[0],
             name=data[1].strip(),  # 去除空格
             gender='male' if data[2] == '男' else 'female',
             phone=data[4],
             birthday=data[3],
             user_id=user.id,
             teacher_id=teacher_id)
         student_list.append(student)
     Student.objects.bulk_create(student_list)  # 批量加入Student表
     return repetition
예제 #16
0
def manager_studentview(request):
    if request.method == 'GET':
        return render(request,'manager/manager_studentview.html')
    else:
        email = request.POST.get('email')
        name = request.POST.get('name')
        contact = request.POST['contact']
        password = randomPassword()
        user = Account(email=email, password=make_password(password), is_teacher=False,is_manager=False,is_student=True)
        user.save()
        msg = f'{name}, your account is created successfully \n use the following credential to login \n email:{email} \n password:{password}'
        Mail(subject='Account created', message=msg,recipient_list=[email])
        student = Student(name=name, contact=contact, user_id=user.id)
        student.save()
        messages.add_message(request,messages.SUCCESS,'student Account is created successfully')
        return redirect('manager_view')
예제 #17
0
파일: tests.py 프로젝트: glukagen/leanagile
 def setUp(self):
     user = User(first_name=self.name,
         last_name=self.name, username=self.name)
     user.save()
     self.student = Student(user=user, about_me=self.name,
         specialities=self.name)
     self.student.save()
예제 #18
0
	def setUp(self):
		self.student_a=Student(first_name=Joy,
			last_name=Wahome,
			date_of_birth=datetime.date(1998,8,25),
			registration_number=123,
			place_of_residence=Nairobi,
			phone_number=123456789,
			[email protected],
			guardian_phone=12345,
			id_number=1111111,
			date_joined=datetime.date.today(),)

		self.student_b=Student(first_name=Ivy,
			last_name=Wahome,
			date_of_birth=datetime.date(1996,5,24),
			registration_number=1234,
			place_of_residence=Nairobi,
			phone_number=123456789,
			[email protected],
			guardian_phone=123456,
			id_number=2222222,
			date_joined=datetime.date.today(),)

		self.python=Course(name=python,
			duration_in_months=10,
			course_number=1,
			description=Learn to code in Python,)

		self.javascript=Course(name=javascript,
			duration_in_months=10,
			course_number=2,
			description=Learn to code in JS,)

		self.hardware=Course(name=hardware,
			duration_in_months=10,
			course_number=3,
			description=Learn to build hardware,)

		self.teacher=Teacher(first_name=James,
			last_name=Mwai,
			date_of_birth=datetime.date(1998,8,25),
			registration_no=123,
			place_of_residence=Nairobi,
			phone_number=123456789,
			[email protected],
			id_number=1111111,
			profession=Consultant,)
예제 #19
0
파일: tests.py 프로젝트: glukagen/leanagile
    def test_index(self):
        def do_request(redirect):
            response = self.client.get(reverse('index'))
            self.assertEqual(response.status_code, 302)
            self.assertRedirects(response,
                    'http://testserver%s' % reverse(redirect))

        do_request('student-add')
        user = User(username=self.name)
        user.save()

        student = Student(user=user, specialities=self.name)
        student.save()

        #do_request('student-first')
        response = self.client.get(reverse('index'))
        self.assertEqual(response.status_code, 302)
예제 #20
0
파일: tests.py 프로젝트: glukagen/leanagile
class SkillAjaxTest(TestCase):
    name = "test"

    def setUp(self):
        user = User(first_name=self.name,
            last_name=self.name, username=self.name)
        user.save()
        self.student = Student(user=user, about_me=self.name,
            specialities=self.name)
        self.student.save()

    def test_change_status(self):
        category = Category(name=self.name)
        category.save()

        track = Track(name=self.name, category=category)
        track.save()

        skill = Skill(name=self.name, track=track)
        skill.save()

        #value = 'n'
        status = SkillStatus(student=self.student, skill=skill)
        status.save()

        response = self.client.get(reverse('change-skill-status',
                    args=(status.id,)))
        # should be 'i'
        self.assertEqual(response.status_code, 200)
        self.assertEqual(SkillStatus.objects.get(id=status.id).value, 'i')

    def test_change_progress_status(self):
        level = ProgressLevel(name=self.name)
        level.save()

        response = self.client.post(reverse('change-progress-status',
                args=(self.student.progress_stasus.id,)),
                data={'value': 'i', 'level': level.id, })

        self.assertEqual(response.status_code, 200)
        updated_status = ProgressStatus.objects.get(
                        id=self.student.progress_stasus.id)

        self.assertEqual(updated_status.value, 'i')
        self.assertEqual(updated_status.level, level)
예제 #21
0
 def save(self, user):
     student = Student()
     student.user= user
     student.college = self.cleaned_data['college']
     student.course = self.cleaned_data['course']
     student.batch_start_year = self.cleaned_data['batch_start_year']
     student.save()
예제 #22
0
def registration_page(request):
    context = {}
    groups = StudyGroup.objects.all()
    context['groups'] = groups
    if request.POST:  #jeigu paspausta submit
        accForm = Account_form(request.POST)
        studForm = Student_form(request.POST)
        if accForm.is_valid() and studForm.is_valid():
            account = accForm.save(
                commit=False)  #is abieju formu gaunu modeliu duomenis
            student = studForm.save(commit=False)
            #sukuriu paskyra
            firstName = accForm.cleaned_data.get("first_name")
            lastName = accForm.cleaned_data.get("last_name")

            account.username = firstName[:3].lower() + lastName[:3].lower()
            account.user_type = Account.STUDENT
            account.save()
            #sukuriu studento profili, prijungta prie paskyros
            code = codeGenerator(
            )  # reiketu patikrinti ar toks kodas neegzistuoja
            group = studForm.cleaned_data.get("studyGroup")
            phone = studForm.cleaned_data.get("phone")

            student = Student(account=account,
                              phone=phone,
                              code=code,
                              studyGroup=group)
            student.save()

            createStudentCourses(
                student)  #db uzpildoma studento moduliais ir atsiskaitymais

            login(request, account)
            return redirect('home')
        else:  #jei yra klaidu tas pacias formas grazinti atgal
            context['account_form'] = accForm
            context['student_form'] = studForm
    else:  #jei katik atejo i registracijos puslapi, pateikia tuscias formas
        accForm = Account_form()
        studForm = Student_form()
        context['account_form'] = accForm
        context['student_form'] = studForm

    return render(request, 'register.html', context)
예제 #23
0
def index(request):
    students = Student.objects.all()
    form = StudentForm()
    if request.method == 'POST':
        form = StudentForm(request.POST)
        if form.is_valid():
            cleaned_data = form.cleaned_data  # 经过验证后的数据
            student = Student()  # 生成一个空的对象
            student.name = cleaned_data['name']
            student.sex = cleaned_data['sex']
            student.email = cleaned_data['email']
            student.profession = cleaned_data['profession']
            student.qq = cleaned_data['qq']
            student.phone = cleaned_data['phone']
            student.save()
            return HttpResponseRedirect(reverse('student:index'))
    ctx = {'data': students, 'form': form}
    return render(request, 'student/index.html', ctx)
예제 #24
0
def add_students(request, excel_file, student_class):
    COLUMN_LIMIT = 6
    sheet_name = "students"
    students = _get_data_from_sheet(request, excel_file, COLUMN_LIMIT,
                                    sheet_name)
    if not students: return False

    # DATA HEAD FROM EXCEL SHEET:
    # No	student_id	name	paren_sms	Class ID	course ID	elective IDs

    # Add student to the database
    for row in students:
        if (len(row) > 0):
            if (row[0] != "No" and row[0] != "CLASS ID"):

                # if there are empty colums
                if (len(row) < COLUMN_LIMIT):
                    i = len(row)
                    while (i < COLUMN_LIMIT):
                        # fill with ""
                        row.append("")
                        i += 1
                try:
                    # Check for the exitence of the staff id
                    s = Student.objects.filter(student_id=row[1])
                    if (s.count() == 0):
                        # Students elective subjects
                        elective_ids = row[4].split(" ")

                        new_student = Student(student_id=row[1],
                                              name=row[2],
                                              parent_sms=row[3],
                                              student_class=student_class,
                                              house=row[5].capitalize())
                        new_student.save()
                        for id in elective_ids:
                            if id:
                                elective = Subject.objects.filter(
                                    is_elective=True, subject_id=id).first()
                                if elective:
                                    new_student.electives.add(elective)
                                    new_student.save()
                                else:
                                    new_student.delete()
                                    request.session[
                                        "error_message"] = f"Elective subject with ID '{id}' not found"
                                    return False
                    else:
                        request.session[
                            "error_message"] = "Student IDs must be unique for all students."
                except Exception as err:
                    request.session["error_message"] = str(err)
                    return False
    return True
예제 #25
0
def seed_student_table():
    student = Student(email="*****@*****.**",
                      student_id="101678608",
                      first_name="Jan",
                      last_name="Timpe")
    student.save()

    student = Student(email="*****@*****.**",
                      student_id="74151585",
                      first_name="Test",
                      last_name="Testerson")
    student.save()
예제 #26
0
def add(request):
    if request.POST:
        post_data = request.POST
        name = post_data.get("name", "")
        rollno = post_data.get("rollno", "")
        Class = post_data.get("Class", "")
        gender = post_data.get("gender", "")
        address = post_data.get("address", "")

        stud = Student(
            name=name,
            rollno=rollno,
            Class=Class,
            gender=gender,
            address=address,
        )
        stud.save()
        return redirect("/studlist/")
    return render(request, "form.html", {})
예제 #27
0
파일: views.py 프로젝트: AnacondaFeng/qzws
def add_student(request):
    """添加学生到数据库"""
    # 接收前端传递过来的值
    data = json.loads(request.body.decode("utf-8"))
    try:
        # 添加到数据库
        obj_student = Student(sno=data['sno'],name=data['name'],gender=data['gender'],
                              birthday=data['birthday'],mobile=data['mobile'],
                              email= data['email'], address=data['address'],image=data['image'])
        # 执行添加
        obj_student.save()
        # 使用ORM获取所有学生信息 并把对象转为字典格式
        obj_students = Student.objects.all().values()
        # 把外层的容器转为List
        students = list(obj_students)
        # 返回
        return JsonResponse({'code': 1, 'data': students})
    except Exception as e:
        return JsonResponse({'code':0 , 'msg': "添加到数据库出现异常,具体原因:" + str(e)})
예제 #28
0
def managerStd(request):
    if request.method == 'GET':
        return render(request, 'manager/stddashboard.html')
    else:
        email = request.POST.get('email')
        name = request.POST.get('name')
        password = getRandomPassword()
        user = Account(email=email,
                       password=make_password(password),
                       is_student=True,
                       is_manager=False)
        user.save()
        msg = f'{name}, Your Account is created successfully, to log into your account \n please use \n email: {email} \n password : {password}'
        Mail(subject='Account Created', message=msg, recipient_list=[email])
        student = Student(name=name, user_id=user.id)
        student.save()
        messages.success(
            request, "Account created successfully please do check your email")
        return redirect('managerStd')
예제 #29
0
    def save(self):
        auth_user = User.objects.create_user(username=self.cleaned_data['admission_number'], password='******')
        auth_user.save()

        student = Student(admission_number=self.cleaned_data['admission_number'],
                          name=self.cleaned_data['name'],
                          class_of_student=self.cleaned_data['class_of_student'],
                          roll_number=self.cleaned_data['roll_number'],
                          student_image=self.cleaned_data['student_image']
                          )
        student.save()

        list_of_subjects = ClassAndSubject.objects.filter(class_name=self.cleaned_data['class_of_student'])
        for subject in list_of_subjects:
            object = Marks.objects.create(admission_number=self.cleaned_data['admission_number'],
                                          subject_code=subject.subject_code)
            object.save()

        return student
예제 #30
0
def generate_students(request):
    amount = int(request.GET['amount'])
    lst = []
    if amount > 200:
        amount = 5
    for _ in range(amount):
        a = Student.generate_student()
        lst.append(a.Student_first_name)
        lst.append('<br>')
    return HttpResponse(f'generated {amount} students: <br> {lst}')
예제 #31
0
def registrationfunction(request):
    userName = request.POST['userName']
    userEmail = request.POST['userEmail']
    userPassword = request.POST['userPassword']
    userSubject = request.POST['userSubject']
    userMobile = request.POST['userMobile']
    #WE NEED TO CREATE student object WITH ABOVE VALUES
    s1 = Student()
    s1.name = userName
    s1.email = userEmail
    s1.pw = userPassword
    s1.sub = userSubject
    s1.mobile = userMobile
    #NOW LETS INSERT A ROW (object)
    s1.save()  #---> inserts s1 object into Student table
    return render(request, 'registration.html')
	def post(self, request, format='json'):
		serializer = UserSerializer(data=request.data)
		if serializer.is_valid():
			#print("Valid")
			user = serializer.save()
			if user:
				if request.data["isStudent"] == 1:
					new_student = Student(user=user, contact_no=request.data["contact_no"])
					new_student.save()
				elif request.data["isStudent"] == 0:
					new_teacher = Teacher(user=user, contact_no=request.data["contact_no"])
					new_teacher.save()
				else:
					return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)

				token = Token.objects.create(user=user)
				json = serializer.data
				json['token'] = token.key
				return Response(json, status=status.HTTP_201_CREATED)

		return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)
예제 #33
0
def addMark(request):
    rollno = int(request.POST['rollno'])
    name = request.POST['name']
    totalmark = int(request.POST['totalmark'])
    student = Student()
    student.rollno = rollno
    student.name = name
    student.toltalmark = totalmark
    Student.save(student)
    return render(request, "addmark.html", {"result": "SUCCESS"})
예제 #34
0
def register_student(request, **args):
    new_user = RegistrationBackend().register(request, **args)
    new_user.userattributes.has_agreed_to_terms()

    domain = new_user.email.split("@")[1]

    if not DomainName.objects.filter(domain=domain).exists():
        #make new domain name
        DomainName.objects.create(domain=domain)

        #send email
        #gets email of [email protected]
        recipients = [mail_tuple[1] for mail_tuple in s.MANAGERS]

        context = Context({'domain': domain})
        context.update(get_basic_email_context())

        txt_email_body = render_to_string('new_domain_email_body.txt', context)

        subject = ''.join(
            render_to_string('email_admin_subject.txt', {
                'message': "New Domain: %s" % domain
            }, context).splitlines())

        send_email(subject, txt_email_body, recipients)

    if new_user.first_name and new_user.last_name:
        student = Student(user=new_user,
                          first_name=new_user.first_name,
                          last_name=new_user.last_name)
    else:
        student = Student(user=new_user)
    umeqo = Employer.objects.get(name="Umeqo")
    student.save()
    if args.has_key("course"):
        try:
            course = Course.objects.get(id=args["course"])
        except:
            Course.DoesNotExist
        else:
            student.first_major = course

    student.subscriptions.add(umeqo)
    student.save()
    return student
예제 #35
0
def social_login_post_processing(request):

    if request.user.is_authenticated():
        studentgroup = Group.objects.get_or_create(name=studentgroupname)
        user = get_object_or_404(User, username=request.user.username)

        newStudent = Student()
        newStudent.userprofile = user.userprofile
        newStudent.save()

        'Create a default resume'
        Resume.objects.create(student=newStudent)

        user.userprofile.student = newStudent
        user.userprofile.save()
        studentgroup = Group.objects.get_or_create(name=studentgroupname)
        user.groups.add(studentgroup[0])
        user.save()

        return HttpResponseRedirect(reverse_lazy('profile'))
    else:
        return HttpResponseRedirect(reverse_lazy('home'))
예제 #36
0
def social_login_post_processing(request):

    if request.user.is_authenticated():
        studentgroup = Group.objects.get_or_create(name=studentgroupname)
        user = get_object_or_404(User, username=request.user.username)
        
        newStudent=Student()
        newStudent.userprofile=user.userprofile
        newStudent.save()
        
        'Create a default resume'
        Resume.objects.create(student=newStudent)
        
        user.userprofile.student=newStudent
        user.userprofile.save()
        studentgroup = Group.objects.get_or_create(name=studentgroupname)
        user.groups.add(studentgroup[0])
        user.save()
        
        return HttpResponseRedirect(reverse_lazy('profile'))
    else:
        return HttpResponseRedirect(reverse_lazy('home'))
예제 #37
0
def create_test_students(request):
    if not request.is_ajax():
        return HttpResponseBadRequest
    room_name = request.GET.get("room_name", None)
    if room_name is None:
        return HttpResponseBadRequest
    try:
        room = Room.objects.get(room_name=room_name)
    except Room.DoesNotExist:
        return ajax_bad_request("Room" + room_name + " doesn't exist")
    for _ in range(0, 10):
        Student(user_name=random_word()[:6], session=None, room=room).save()
    return HttpResponseNoContent()
예제 #38
0
def edit_profile(request):
    if request.method == 'POST':
        uid = request.user.id
        rn = request.POST['rn']
        dept = request.POST['dept']

        try:
            sd_new = Student(rollno=rn, department=dept, UserId_id=uid)
            sd_old = Student.objects.filter(UserId=uid)
            sd_old.delete()
            sd_new.save()
            msg = "Details successfully added!"
            messages.add_message(request,messages.INFO,msg,extra_tags='adderror')
        except:
            errormsg = "Error while adding details"
            messages.add_message(request,messages.ERROR,errormsg,extra_tags='adderror')

    try:
        sd = Student.objects.filter(UserId=request.user.id).values_list('rollno', 'department')
        return render(request, 'profile.html', {'uid': request.user.id, 'rn': sd[0][0], 'nm': request.user.first_name, 'dept': sd[0][1]})
    except:
        return render(request, 'profile.html', {'uid': request.user.id, 'nm': request.user.first_name})
예제 #39
0
파일: views.py 프로젝트: imayank2698/Kolrad
def registeraction(request):
    name = request.POST.get('name', 'NULL')
    email = request.POST.get('email', 'NULL')
    contact = request.POST.get('phone', 'NULL')
    username = request.POST.get('username', 'NULL')
    password = request.POST.get('password', 'NULL')
    uploadedfileurl = ''
    if request.method == 'POST' and request.FILES['myfile']:
        myfile = request.FILES['myfile']
        fs = FileSystemStorage()
        filename = fs.save(myfile.name, myfile)
        uploadedfileurl = fs.url(filename)

    bool = usernamepresent(username)
    if contact == 'NULL':
        contact = 0
    if bool == True:
        s = Student(name=name,
                    email=email,
                    contact=contact,
                    username=username,
                    password=password,
                    pic_path=uploadedfileurl)

        s.save()
        if s.id:
            subject = 'Registered'
            message = 'Thank you for Registering -Kolrad Inc'
            from_email = settings.EMAIL_HOST_USER
            li = [email]

            a = send_mail(subject, message, from_email, li, fail_silently=True)

            return HttpResponseRedirect(reverse('login'))
        else:
            return HttpResponse('Error')

    else:
        return HttpResponseRedirect(reverse('studentregister') + '?auth1=true')
 def post(self, request, *args, **kwargs):
     email = request.POST.get('email')
     name = request.POST.get('name')
     password_ = randomPassword()
     try:
         user = Account(email=email,
                        password=make_password(password_),
                        is_student=True)
         user.save()
         msg = f'{name}, Your account is created Please use the following credential to login into your account \n Email: {email} \n password: {password_}'
         Mail(subject="Account Creation",
              message=msg,
              recipient_list=[
                  email,
              ])
         student = Student(name=name, user_id=user.id)
         student.save()
         messages.add_message(request, messages.SUCCESS,
                              'Student Account is created successfully')
         return redirect('manage_student')
     except Exception as e:
         messages.add_message(request, messages.ERROR, str(e))
         return redirect('manage_student')
예제 #41
0
파일: views.py 프로젝트: glukagen/leanagile
def add(request):
    if request.method == "POST":
        form = StudentForm(request.POST)
        if form.is_valid():
            user = User(
                 first_name=request.POST['first_name'],
                 last_name=request.POST['last_name']
            )
            user.username = "******" % (user.first_name,
                user.last_name, str(uuid.uuid4()).replace('-', '')[:8])
            user.save()
            student = Student(
                user=user,
                specialities=request.POST['specialities'],
                about_me=request.POST['about_me']
            )
            if request.FILES.get('photo'):
                student.image = request.FILES['photo']
            student.save()
            return redirect(reverse('student-profile', args=(student.id,)))
    else:
        form = StudentForm()
    return locals()
예제 #42
0
파일: views.py 프로젝트: vpong/ShyGuyHack
def enroll(request, netid):
  try:
    course_name = request.GET['course']
  except:
    return HttpResponse("Please provide a course to enroll in.")

  courses = Course.objects.filter(name=course_name)
  if len(courses) == 0:
    return HttpResponse("No course called " + course_name + " exists")
  course = courses[0]

  students = Student.objects.filter(netid=netid)
  if len(students) == 0:
    student = Student(netid=netid)
  else:
    student = students[0]

  if course.student_set.filter(pk=student.pk).exists():
    return HttpResponse("Already enrolled")
    
  student.courses.add(course) 
  student.save()
  return HttpResponse("Enrolled in " + course.name)
예제 #43
0
def register_student(request, **args):
    new_user = RegistrationBackend().register(request, **args)
    new_user.userattributes.has_agreed_to_terms()
    
    domain = new_user.email.split("@")[1]
    
    if not DomainName.objects.filter(domain=domain).exists():
        #make new domain name
        DomainName.objects.create(domain=domain)

	#send email
	#gets email of [email protected]
        recipients = [mail_tuple[1] for mail_tuple in s.MANAGERS]

        context = Context({'domain':domain})
        context.update(get_basic_email_context())

        txt_email_body = render_to_string('new_domain_email_body.txt', context)

        subject = ''.join(render_to_string('email_admin_subject.txt', {
                'message': "New Domain: %s" % domain
            }, context).splitlines())

        send_email(subject, txt_email_body, recipients)
        
	

    if new_user.first_name and new_user.last_name:
        student = Student(user=new_user, first_name = new_user.first_name, last_name = new_user.last_name)
    else:
        student = Student(user=new_user)
    umeqo = Employer.objects.get(name="Umeqo")
    student.save()
    if args.has_key("course"):
        try:
            course = Course.objects.get(id=args["course"])
        except:
            Course.DoesNotExist
        else:
            student.first_major=course
            
    student.subscriptions.add(umeqo)
    student.save()
    return student
예제 #44
0
    def import_students(self, wb, sheet_index):
        # self.stdout.write("Import students...")
        colpos = {                                                                  
            'region': 1,                                                            
            'location': 2,                                                          
            'school': 3,                                                            
            'donor_balance': 4,                                                     
            'student_name': 5,                                                      
            'sex': 6,                                                               
            'grade': 7,                                                             
            'graduation_year': 8,                                                   
            'student_donor_id': 9,                                                  
            'student_donor_name': 10,                                               
            'student_donor_donation_amount_local': 11,                              
            'student_donor_donation_amount_us': 12,                                 
            'comment': 13,                                                          
            'comment_tw': 14,                                                       
        }

        # Location.objects.all().delete()
        # Area.objects.all().delete()
        # Student.objects.all().delete()

        sheet = wb.sheet_by_index(sheet_index)
        sheet_info = self.get_info_from_sheet_name(sheet.name)

        # Determine if we need to alter colpos to older version.
        amt_title = sheet.cell_value(1, colpos['student_donor_donation_amount_local'])
        amt_title += sheet.cell_value(2, colpos['student_donor_donation_amount_local'])
        if amt_title.lower().find(u'amount') < 0:
            #print amt_title
            # print ">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>"
            # Different version, adjust column positions.
            colpos.pop('donor_balance')
            adjust_list = ['student_name', 'sex', 'grade', 'graduation_year', 'student_donor_id',
                'student_donor_name', 'student_donor_donation_amount_local',
                'student_donor_donation_amount_us'
            ]
            for x in adjust_list:
                colpos[x] = colpos[x] - 1

            # Find correct comment column position
            s = colpos['student_donor_donation_amount_us']
            e = colpos['student_donor_donation_amount_us'] + 3
            for x in xrange(s, e):
                v = self.normalize_value(sheet.cell_value(1, x))
                if v.lower().find(u'comments') >= 0 or v == "":
                    # print "................ ", x
                    colpos['comment'] = colpos['comment_tw'] = x
                    break
            # print colpos

        """
        us_amt_title = self.normalize_value(
            sheet.cell_value(1, colpos['student_donor_donation_amount_us'])
        ).strip()
        if us_amt_title == u"USD":
            # print "YES....."
            pass
        """

        if sheet_info['country'] == Location.TAIWAN:
            comment_pos = colpos['comment_tw']
        else:
            comment_pos = colpos['comment'] 

        if sheet_info['season'] == Season.SPRING:
            dt = '1/1/{}'
        else:
            dt = '6/1/{}'
        school_end_dt = datetime.strptime(dt.format(sheet_info['yr']), '%m/%d/%Y')
        school_end_dt -= timedelta(seconds=1)
        # print school_end_dt
        # print sheet.number, sheet.name, sheet_info

        # Import each student, school assignment, donor assignment.
        start_row = 3
        end_row = 3070
        for row in xrange(start_row, end_row):
            """Exit when there are no more students by checking for empty value in the
            first and 2nd column.
            """
            if (
                unicode(self.normalize_value(sheet.cell_value(row, 0))).strip() == '' and
                unicode(self.normalize_value(sheet.cell_value(row + 1, 0))).strip() == ''
            ):
                break

            dm = self.normalize_value(sheet.cell_value(
                row, colpos['student_donor_donation_amount_us'])
            )

            # Import new area and school if necessary.
            area = self.get_area(
                sheet.cell_value(row, colpos['region']),
                sheet.cell_value(row, colpos['location'])
            )
            school = self.get_school(area, sheet.cell_value(row, colpos['school']))
            # print area.location.country

            # Get donor.
            donor_id = int(sheet.cell_value(row, colpos['student_donor_id']))
            donor = self.get_donor(donor_id)

            # If a student exists, update data except the name.  Else create it.
            try:
                name = self.normalize_value(sheet.cell_value(row, colpos['student_name']))
                s = Student.objects.get(name=name)
                old_school = s.school
            except:
                s = Student()
                s.name = name
                old_school = None

            # Disable school history recording.
            s.record_school_history = False

            sex = self.normalize_value(sheet.cell_value(row, colpos['sex'])) 
            s.sex = (Student.FEMALE if sex.find(u'女') >= 0 else Student.MALE)
            s.cls = self.normalize_value(sheet.cell_value(row, colpos['grade']))
            s.grad_yr = self.normalize_value(sheet.cell_value(row, colpos['graduation_year']))
            s.notes = self.normalize_value(sheet.cell_value(row, comment_pos))
            s.school = school

            try:
                s.save()
                Student.record_school_change(s, old_school, school, school_end_dt)

                # Assignment
                assignment = s.assign_to_donor(
                    donor,
                    sheet_info['yr'],
                    sheet_info['season'],
                    self.normalize_value(sheet.cell_value(
                        row, colpos['student_donor_donation_amount_us'])
                    )
                )
            except:
                print sys.exc_info()
                print "Unable to save student: {}".format(row)

        print "Rows:", row
예제 #45
0
def csv_student(request):
    if request.POST and request.FILES:
        csvfile = request.FILES['csv_file']
        dialect = csv.Sniffer().sniff(codecs.EncodedFile(csvfile, "utf-8").read(1024))
        csvfile.open()
        reader = csv.reader(codecs.EncodedFile(csvfile, "utf-8"), delimiter=',', dialect=dialect)
        file_upload = False
        success = False
        for x in reader:
        	
        	if x[0] =='Student':
        		file_upload = True
        	else:
        		if Student.objects.filter(studentid=x[0]).exists():
        				student_update = Student.objects.get(studentid=x[0])
        		if file_upload:
        			
        			if Student.objects.filter(studentid=x[0]).exists():
						student_update.firstname = x[1]
						student_update.middlename = x[2]
						student_update.lastname = x[3]
						student_update.gender = x[4]
						student_update.date_of_birth =x[5]
						student_update.date_admitted = x[6]
						student_update.address = x[7]
						student_update.mother_name = x[8]
						student_update.father_name = x[9]
						student_update.mother_occ =  x[10]
						student_update.father_occ = x[11]
						student_update.last_school_att = x[12]
						student_update.last_school_att_address = x[13]
						student_update.acad_status = x[14]
						student_update.privilege = x[15]
						student_update.year_level = x[16]
						student_update.cell_no = x[17]
						student_update.Section = x[18]
						student_update.password = x[19]
						success = True

			        else:

			        		student_create = Student(

								studentid = x[0],
							    firstname = x[1],
							    middlename = x[2],
							    lastname = x[3],
							    gender = x[4],
							    date_of_birth =x[5],
							    date_admitted = x[6],
							    address = x[7],
							    mother_name = x[8],
							    father_name = x[9],
							    mother_occ =  x[10],
							    father_occ = x[11],
							    last_school_att = x[12],
							    last_school_att_address = x[13],
							    acad_status = x[14],
							    privilege = x[15],
							    year_level = x[16],
							    cell_no = x[17],
							    Section = x[18],
							    password = x[19],
			        		)
				        	student_create.save()
				        	success = True
				student_update.save()
		      
    	if success:
			return render(request,'msge.html', {'success':'success'} )
    else:
    	return render(request,'msge.html', {'success':'no'} )
    return render(request,'msge.html', {'success':'no'} )
예제 #46
0
def setup_students(request):
    # first see whether the cancel button was pressed
    if "cancel" in request.POST:
        return HttpResponseRedirect(reverse('setup_index'))

    # now start processing the file upload
    context_dict = {
    }
    context_dict['header'] = 'Upload Student Data'
    if request.method == 'POST':
        # get the file uploaded by the user
        form = ExcelFileUploadForm(request.POST, request.FILES)
        context_dict['form'] = form

        if form.is_valid():
            try:
                print 'now starting to process the uploaded file for setting up Student data...'
                fileToProcess_handle = request.FILES['excelFile']

                # check that the file uploaded should be a valid excel
                # file with .xls or .xlsx
                if not validate_excel_extension(fileToProcess_handle, form, context_dict):
                    return render(request, 'classup/setup_data.html', context_dict)

                # if this is a valid excel file - start processing it
                fileToProcess = xlrd.open_workbook(filename=None, file_contents=fileToProcess_handle.read())
                sheet = fileToProcess.sheet_by_index(0)
                if (sheet):
                    print 'Successfully got hold of sheet!'
                for row in range(sheet.nrows):
                    # skip the header row
                    if (row == 0):
                        continue
                    print 'Processing a new row'
                    # first, capture student data
                    # we need to explicitly cast student id to string. Else update will not function properly
                    student_id = str(sheet.cell(row, 0).value)
                    student_first_name = sheet.cell(row, 1).value
                    student_last_name = sheet.cell(row, 2).value
                    current_class = sheet.cell(row, 3).value
                    current_section = sheet.cell(row, 4).value
                    current_roll_no = sheet.cell(row, 5).value

                    # now, capture the parent data
                    parent_name = sheet.cell(row, 6).value
                    parent_email = sheet.cell(row, 7).value
                    # we need to explicitly case mobile number to string. Else update will not function properly
                    parent_mobile1 = str(sheet.cell(row, 8).value)
                    parent_mobile2 = str(sheet.cell(row, 9).value)

                    # class and section are foreign keys. Get hold of the relevant objects
                    print 'Class = ' + current_class
                    the_class = None
                    the_section = None
                    try:
                        the_class = Class.objects.get(standard=current_class)
                    except Exception as e:
                        print 'Exception = %s (%s)' % (e.message, type(e))
                        error = 'Unable to retrieve the relevant class: ' + current_class
                        form.errors['__all__'] = form.error_class([error])
                        print error
                        # todo - we should skip this student but report this and move on to the next student <provide code>
                        continue

                    try:
                        the_section = Section.objects.get(section=current_section)
                    except Exception as e:
                        print 'Exception = %s (%s)' % (e.message, type(e))
                        error = 'Unable to retrieve the relevant object for section: ' + current_section
                        form.errors['__all__'] = form.error_class([error])
                        print error
                        # todo - we should skip this student but report this and move on to the next student <provide code>
                        continue

                    # process student first. If this is an existing student, this is an update operations.
                    try:
                        s = Student.objects.get(student_erp_id=student_id)
                        if (s):
                            print 'Student with  ID: ' + student_id + \
                                  ' & name: ' + student_first_name + ' already exist. This will be updated!'
                            s.student_erp_id = student_id
                            s.first_name = student_first_name
                            s.last_name = student_last_name
                            s.current_class = the_class
                            s.current_section = the_section
                            s.roll_no = current_roll_no
                    except Exception as e:
                        print 'Exception = %s (%s)' % (e.message, type(e))
                        print 'Student with ID:  ' + student_id + ' Name: ' \
                              + student_first_name + ' ' + student_last_name + ' is a new entry. Hence inserting...'
                        try:
                            s = Student(student_erp_id=student_id, fist_name=student_first_name, last_name=student_last_name,
                                    current_class=the_class, current_section=the_section,
                                    roll_number=current_roll_no)
                            s.save()
                            print 'saving successful!'
                        except Exception as e:
                            error = 'Unable to save the new student to the database'
                            print error
                            print 'Exception = %s (%s)' % (e.message, type(e))
                            form.errors['__all__'] = form.error_class([error])
                            # todo - we should skip this student but report this and move on to the next student <provide code>
                    try:
                        s.save()
                    except Exception as e:
                        print 'Exception = %s (%s)' % (e.message, type(e))
                        error = 'Unable to save the data for Student with ID: ' + student_id + \
                                ' Name: ' + student_first_name + ' ' + student_last_name + ' in Table Student'
                        form.errors['__all__'] = form.error_class([error])
                        print error
                        # todo - we should skip this student but report this and move on to the next student <provide code>

                    # now, process the parent for the student created/updated above
                    try:
                        p = Parent.objects.get(parent_mobile1=parent_mobile1)

                        if (p):
                            print 'Parent for Student with  ID: ' + student_id + \
                                  ' & name: ' + student_first_name + ' already exist. This will be updated!'
                            p.student_id = s
                            p.parent_name = parent_name
                            p.parent_mobile1 = parent_mobile1
                            p.parent_mobile2 = parent_mobile2
                            p.parent_email = parent_email
                    except Exception as e:
                        print 'Exception = %s (%s)' % (e.message, type(e))
                        print 'Student with ID:  ' + student_id + ' Name: ' \
                              + student_first_name + ' ' + student_last_name + ' is a new entry. Hence inserting...'
                        p = Parent(student_id=s, parent_name=parent_name, parent_mobile1=parent_mobile1,
                                   parent_mobile2=parent_mobile2, parent_email=parent_email)
                    try:
                        p.save()
                    except Exception as e:
                        print 'Exception = %s (%s)' % (e.message, type(e))
                        error = 'Unable to save the parent data for Student with ID: ' + student_id + \
                                ' Name: ' + student_first_name + ' ' + student_last_name + ' in Table Parent'
                        form.errors['__all__'] = form.error_class([error])
                        print error
                # file upload and saving to db was successful. Hence go back to the main menu
                return HttpResponseRedirect(reverse('setup_index'))
            except Exception as e:
                print 'Exception = %s (%s)' % (e.message, type(e))
                error = 'Invalid file uploaded. Please try again.'
                form.errors['__all__'] = form.error_class([error])
                print error
                return render(request, 'classup/setup_data.html', context_dict)
    else:
        form = ExcelFileUploadForm()
        context_dict['form'] = form
    return render(request, 'classup/setup_data.html', context_dict)
예제 #47
0
파일: views.py 프로젝트: vpong/ShyGuyHack
def create(request, netid):
  s = Student(netid=netid)
  s.save()
  return HttpResponse('Created!')