def test_query_module_association_many_preclusions(self): ''' Tests querying the modules preclusions as a string, where there are more than one preclusions. ''' preclude_string = model.get_preclusion_as_string('CS4350') required_preclude_string = "CS4204, CS4203" assert_true( is_preclude_equal(preclude_string, required_preclude_string)) preclude_string = model.get_preclusion_as_string('CS4203') required_preclude_string = "CS4350, CS3283, CS3284" assert_true( is_preclude_equal(preclude_string, required_preclude_string))
def test_query_module_association_one_preclusion(self): ''' Tests querying the modules preclusions as a string, where there is only one preclusion. ''' preclude_string = model.get_preclusion_as_string('CS4213') required_preclude_string = "CS3247" assert_true( is_preclude_equal(preclude_string, required_preclude_string))
def test_query_module_association_no_preclusion(self): ''' Tests querying the modules preclusions as a string, where there is no preclusions. ''' preclude_string = model.get_preclusion_as_string('CS2104') required_preclude_string = "" assert_true( is_preclude_equal(preclude_string, required_preclude_string))
def GET(self): ''' Handles the loading of the 'Edit General Module Info' page ''' input_data = model.validate_input(web.input(), ["code"]) module_code = input_data.code module_info = model.get_module(module_code) if module_info is None: return RENDER.notfound("Module " + module_code + " does not exist in the system.") preclusions = model.get_preclusion_as_string(module_code) prerequisites = model.get_prerequisite_as_string(module_code) return RENDER.moduleEdit(module_info, preclusions, prerequisites)
def POST(self): ''' Handles the submission of updated module preclusions for a target module. ''' isSucessfullyUpdated = False input_data = model.validate_input(web.input(), ["code"], show_404=False) if input_data: module_code = input_data.code.upper() preclusions = json.loads(input_data.preclusions) isSucessfullyUpdated = model.edit_preclusion(module_code, preclusions) new_preclusions = model.get_preclusion_as_string(module_code) response = [isSucessfullyUpdated, new_preclusions] return json.dumps(response)
def GET(self): ''' Retrieve and render all the info of a module ''' if not session.validate_session(): raise web.seeother('/login') input_data = model.validate_input(web.input(), ["code"]) module_code = input_data.code # Get module's name, description, MC and status module_info = model.get_module(module_code) # Get mounting status, quota and number of students taking self.load_fixed_mounting_plan(module_code) self.load_tenta_mounting_plan(module_code) number_of_student_planning = model.get_number_students_planning( module_code) # Get module's prereqs and preclusions prereq_string = model.get_prerequisite_as_string(module_code) preclude_string = model.get_preclusion_as_string(module_code) # Check if module is starred is_starred = model.is_module_starred(module_code, web.cookies().get('user')) all_ay_sems = model.get_all_ay_sems() all_future_ay_sems = model.get_all_future_ay_sems() target_ay_sem = None #get html of overlapping modules template return RENDER.viewModule(module_info, all_ay_sems, all_future_ay_sems, target_ay_sem, self.fixed_mounting_plan, self.tenta_mounting_plan, number_of_student_planning, is_starred, prereq_string, preclude_string)