def write_dr_periods_to_file(self, file_obj=None, file_name='dr_periods.csv'): if file_obj == None: file_obj = open(file_name, 'w') for period in self.dr_periods: start_at = utils.int_to_datetime(period[0], self.timezone).strftime("%Y-%m-%d %H:%M:%S") end_at = utils.int_to_datetime(period[1], self.timezone).strftime("%Y-%m-%d %H:%M:%S") file_obj.write("%s,%s\n" % (start_at, end_at)) file_obj.flush() return file_obj
def find_update_studygroup(student, groupid): """ :param student: current logged in student from auth decorator. | route: /studygroups/<groupid> | method: GET | With given id parameter finds the studygroup. | | method: POST | With given id parameter updates the studygroup. | | method: DELETE | With given id parameter removes the studygroup. """ groupid = int(groupid) result = check_study_group(student["id"], groupid) if result: return result if request.method == "GET": group = studygroup_model.find_by_id(_id=groupid)[0] return json.dumps(group) elif request.method == "PUT": print("put method") req_body = request.get_json() data = {} if req_body.get("name"): data["name"] = req_body.get("name") if req_body.get("description"): data["description"] = req_body.get("description") if req_body.get("study_date"): data["study_date"] = int_to_datetime(req_body.get("study_date")) if req_body.get("duration"): data["duration"] = req_body.get("duration") if req_body.get("course"): data["course"] = req_body.get("course") try: result = studygroup_model.update_by_id(_id=groupid, data=data, return_cols=["id"]) result["message"] = "updated" return json.dumps(result) except DataBaseException as db_error: return db_error.message, 404 elif request.method == "DELETE": try: result = studygroup_model.delete_by_id(_id=groupid, return_cols=["id"]) result["message"] = "studygroup is deleted." return json.dumps(result) except DataBaseException: return "failed to delete study group.", 404
def write_to_file(self, file_obj=None, file_name='series.csv', start_at=None, end_at=None, exclude=True): if file_obj == None: file_obj = open(file_name, 'w') for time, value in self.data(start_at=start_at, end_at=end_at, exclude=exclude): time = utils.int_to_datetime(time, self.timezone).strftime("%Y-%m-%d %H:%M:%S") file_obj.write("%s,%s\n" % (time, value)) file_obj.flush() return file_obj
def write_to_file(self, file_obj=None, file_name="series.csv", start_at=None, end_at=None, exclude=True): if file_obj == None: file_obj = open(file_name, "w") for time, value in self.data(start_at=start_at, end_at=end_at, exclude=exclude): time = utils.int_to_datetime(time, self.timezone).strftime("%Y-%m-%d %H:%M:%S") file_obj.write("%s,%s\n" % (time, value)) file_obj.flush() return file_obj
def one_student(student): """ :param student: current logged in student from auth decorator. | route: /students | method: GET | Retrieves one student with id. | route: /students | method: PUT | body: {"study_start": [timestamp], "study_end": [timestamp]} | Updates one student study time preference with id. """ if request.method == "GET": return json.dumps(student) elif request.method == "PUT": req_body = request.get_json() data = {} if req_body.get("study_start"): data["study_start"] = int_to_datetime(req_body.get("study_start")) if req_body.get("study_end"): data["study_end"] = int_to_datetime(req_body.get("study_end")) student["id"] = "'{}'".format(student["id"]) updated_keys = [] for key in data: updated_keys.append(key) try: result = student_model.update_by_id(_id=student["id"], data=data, return_cols=["id"] + updated_keys) result["message"] = "student is updated." return json.dumps(result) except DataBaseException as db_error: result = {} result["message"] = "error not updated" result["error"] = db_error.message return json.dumps(result), 404 except Exception as e: print(e) return "something is wrong", 500
def list_studygroups(student): """ :param student: current logged in student from auth decorator. | route: /studygroups | method: GET | Lists all available studygroups for the caller student. """ student_courses = student_course_model.find_student_courses( studentid=student["id"]) student_courses = [r["crn"] for r in student_courses] if request.method == "GET": try: result = studygroup_model.get_available_study_groups( student["id"], student_courses, student["study_start"], student["study_end"]) return json.dumps(result) except DataBaseException: return "no suitable studygroup", 404 elif request.method == "POST": req_body = request.get_json() study_date = int_to_datetime(req_body.get("study_date")) if req_body.get("course") not in student_courses: result = {} result["message"] = "You do not have this course" return json.dumps(result), 403 try: studygroup_model.create( data={ "course": req_body.get("course"), "created_by": student["id"], "name": req_body.get("name"), "description": req_body.get("description"), "study_date": study_date, "duration": req_body.get("duration") }) result = studygroup_model.find(query="created_by='{}'".format( student["id"]), sort_by="id DESC")[0] result["message"] = "created" return json.dumps(result) except DataBaseException as db_error: return db_error.message, 404