def store_classes(path): """ Gets classes data from classes.json (generated by web scraping) and instantiates Classes objects in the database """ classes_data = json_to_data(path) classes = classes_data["classes"] for _class in classes: subject_instance = Subject.objects.get(initials=_class["subject"]) class_instance = Class(class_id=_class["class"], positions=string_to_int(_class["positions"]), enrolled=string_to_int(_class["enrolled"]), subject=subject_instance) class_instance.save() for schedule in _class["schedule"]: Schedule.objects.create(day=schedule["day"], time_start=schedule["time_start"], time_end=schedule["time_end"], place=schedule["place"], class_id=class_instance) for course in _class["course_reservation"]: try: course_instance = Course.objects.get( name=course["course_name"]) class_instance.courses.add(course_instance) except: pass
def set_up_data(): # model1: Class without term, all types tested c1 = Class(name='Experience of Christ as Life', code='ECAL', type='1YR') c2 = Class(name='God Ordained Way', code='GOW', type='MAIN') c3 = Class(name='New Jerusalem', code='NJ', type='2YR') # foreign model: Term # left here for comparison with mock method which does not need this line t = Term(current=True, season="Fall", year=2014) c4 = Class(name='Character', code='CHAR', term=t, type='AFTN') return dict([('c1', c1), ('c2', c2), ('c3', c3), ('c4', c4)])
def add_or_edit_class(request, class_pk=None): if class_pk: clss = get_object_or_404(Class, pk=class_pk) else: clss = Class() if request.method == 'POST': form = ClassForm(request.POST, instance=clss) if form.is_valid(): clss.start = datetime.datetime.strptime('11-14-2015 '+request.POST.get('start_time')+':'+request.POST.get('start_min'), '%m-%d-%Y %H:%M') clss.end = datetime.datetime.strptime('11-14-2015 '+request.POST.get('end_time')+':'+request.POST.get('end_min'), '%m-%d-%Y %H:%M') form.save() clss.save() clss.wl_moveup() return redirect(add_or_edit_class) form = ClassForm(instance=clss) classes = Class.objects.all() context = { 'form': form, 'classes': classes, } return render(request, 'templates/manage_classes.html', context)
) user4.save() user5 = User( email="*****@*****.**", first_name="Ronald", last_name="Weasely", is_active=True, password=mkpasswd(), ) user5.save() class1 = Class( prefix="transfig", name="Transfiguration", droplet_image="ubuntu-20-04-x64", droplet_size="s-1vcpu-1gb", droplet_region="sfo3", droplet_student_limit=1, ) class1.save() class2 = Class( prefix="potions", name="Potions", droplet_image="ubuntu-20-04-x64", droplet_size="s-1vcpu-1gb", droplet_region="sfo3", droplet_student_limit=3, allow_registration=True, ) class2.save()
def class_process(request): # Get request's context context = RequestContext(request) # Get HTTP POST total number of classes to add total = int(request.POST.get('total')) # ... and the User we are working with user_to_add_id = int(request.POST.get('user_to_add_id')) # Now, for each class to add, check to see if it is already # stored. If not, create a new class/department object. If it # is, create a tutor class object. for i in range(0,int(total)): # Get the HTTP POST objects for this particular class class_to_add = request.POST.get('class_' + str(i)) department_to_add = request.POST.get('department_' + str(i)) number_to_add = request.POST.get('number_' + str(i)) # First check to see if the department exists departments = Department.objects.all() dept_id = None for dept in departments: if dept.name == department_to_add: dept_id = dept.id tutor_to_associate = None for tutor in TutorProfile.objects.all(): if tutor.user.id == user_to_add_id: tutor_to_associate = tutor # If no department id was returned in the above, add it... if dept_id == None: new_department = Department(name=str(department_to_add), short_ident = str(department_to_add)[0:4].upper(), school=tutor_to_associate.school) new_department.save() dept_id = new_department.id # Now check to see if the class exists classes = Class.objects.all() class_id = None for cl in classes: if cl.number == int(number_to_add): class_id = cl.id # If no class id was returned in the above, add it... if class_id == None: new_class = Class(department=Department.objects.get(id=dept_id), title = str(class_to_add), number = int(number_to_add)) new_class.save() class_id = new_class.id if tutor_to_associate == None: return HttpResponse("This tutor does not exist!!!!") # Get the right class to associate class_to_associate = Class.objects.get(id=class_id) # Construct new tutor class object new_tutor_class = TutorClass( tutor=tutor_to_associate, teach=class_to_associate) # Save this tutor class to the database new_tutor_class.save() return HttpResponse("All things added successfully!")
def class_process(request): # Get request's context context = RequestContext(request) # Get HTTP POST total number of classes to add total = int(request.POST.get('total')) # ... and the User we are working with user_to_add_id = int(request.POST.get('user_to_add_id')) # Now, for each class to add, check to see if it is already # stored. If not, create a new class/department object. If it # is, create a tutor class object. for i in range(0, int(total)): # Get the HTTP POST objects for this particular class class_to_add = request.POST.get('class_' + str(i)) department_to_add = request.POST.get('department_' + str(i)) number_to_add = request.POST.get('number_' + str(i)) # First check to see if the department exists departments = Department.objects.all() dept_id = None for dept in departments: if dept.name == department_to_add: dept_id = dept.id tutor_to_associate = None for tutor in TutorProfile.objects.all(): if tutor.user.id == user_to_add_id: tutor_to_associate = tutor # If no department id was returned in the above, add it... if dept_id == None: new_department = Department( name=str(department_to_add), short_ident=str(department_to_add)[0:4].upper(), school=tutor_to_associate.school) new_department.save() dept_id = new_department.id # Now check to see if the class exists classes = Class.objects.all() class_id = None for cl in classes: if cl.number == int(number_to_add): class_id = cl.id # If no class id was returned in the above, add it... if class_id == None: new_class = Class(department=Department.objects.get(id=dept_id), title=str(class_to_add), number=int(number_to_add)) new_class.save() class_id = new_class.id if tutor_to_associate == None: return HttpResponse("This tutor does not exist!!!!") # Get the right class to associate class_to_associate = Class.objects.get(id=class_id) # Construct new tutor class object new_tutor_class = TutorClass(tutor=tutor_to_associate, teach=class_to_associate) # Save this tutor class to the database new_tutor_class.save() return HttpResponse("All things added successfully!")
def test_models(self): data_dicts = set_up_data() self.assertTrue(Class(data_dicts['c1'])) self.assertTrue(Class(data_dicts['c2'])) self.assertTrue(Class(data_dicts['c3'])) self.assertTrue(Class(data_dicts['c4']))
def create(self, request): try: data = JSONParser().parse(request) class_serializer = ClassNoImageSerializer(data=data) # data = request.FILES['pre'] # ex_image_serializer = ExerciseNoImageSerializer(data=data) if class_serializer.is_valid(): cl = Class() cl.type = class_serializer.validated_data.get('type') cl.name = class_serializer.validated_data.get('name') cl.description = class_serializer.validated_data.get( 'description') cl.age = class_serializer.validated_data.get('age') cl.difficulty = class_serializer.validated_data.get( 'difficulty') cl.length = class_serializer.validated_data.get('length') cl.trainer = class_serializer.validated_data.get('trainer') cl.save() categories = [] cat = class_serializer.validated_data.get('categories') for c in cat: categories.append(c.category) cl.categories.set(categories) # ex.videoclass = class_serializer.validated_data.get('videoclass') cl.workarea = class_serializer.validated_data.get('workarea') cl.save() return Response(class_serializer.data, status=status.HTTP_201_CREATED) return Response(class_serializer.errors, status=status.HTTP_400_BAD_REQUEST) except Class.DoesNotExist: return Response(status=status.HTTP_400_BAD_REQUEST)