def post(self, idx, idx1): # Apply a new activity applicant_id = idx activity_id = idx1 # Search if the applicanttion has already existed in # MongoDB collection 'Application' applications_exist = Application.objects(applicant_id=applicant_id) for application_exist in applications_exist: if application_exist.activity_id == activity_id: return jsonify("You already applied", 400) # Obtain applicant's information from collection 'User' user = User.objects(use_id=applicant_id).first() applicant_name = user.username # Obtain activity information from collection 'Activity' activity = Activity.objects(activity_id=activity_id).first() activity_name = activity.activity_name apply_id = Application.objects.count() apply_id += 1 application = Application(apply_id=apply_id, applicant_id=applicant_id, applicant_name=applicant_name, activity_id=activity_id, activity_name=activity_name, status=0) application.save() return jsonify("Successfully apply", 200)
def put(self, idx): accept = request.form.get("accept") reject = request.form.get("reject") applicant_name = request.form.get("applicant") activity_name = request.form.get("project") activity_name = activity_name if accept: application = Application.objects( activity_name=activity_name).first() application.update(status=1) return jsonify("The applicant successfully attend your activity", 200) elif reject: activity = Application.objects(activity_name=activity_name).first() activity.update(status=-1) return jsonify("The applicant fails to attend your activity", 200)
def post(self, idx): # The activities the user attended user_id = idx # idx = user_id applications = Application.objects(applicant_id=user_id) apply_activities = [] if applications: for application in applications: activity_id = application.activity_id activity_id = activity_id status = application.status activity = Activity.objects(activity_id=activity_id).first() activity_name = activity.activity_name open_date = activity.open_date genre = activity.genre leader_name = activity.leader_name open_date_local = time.local(open_date) format_time = time.strftime("%Y-%m-%d %H:%M:%S", open_date_local) apply_activity_dict = { "Project_Name": activity_name, "Deadline": open_date, "Deadline": format_time, "Major": genre, "Leader": leader_name, "Application Status": status } apply_activities.append(apply_activity_dict) return jsonify(apply_activities, 200) return jsonify("You don't have any applied acticities", 400)
def get(self, idx): # idx = user_id user_id = idx activities = Activity.objects(leader_id=user_id).all() create_activities = [] if activities: for activity in activities: activity_name = activity.activity_name applications = Application.objects( activity_name=activity_name).all() application_list_zero = [] application_list_one = [] for application in applications: if application.status == 0: application_list_zero.append(application.applicant_id) elif application.status == 1: application_list_one.append(application.applicant_id) activity_id = activity.activity_id activity_name = activity.activity_name open_date = activity.open_date genre = activity.genre # '0': the application has not been decided by the leader # '1': the application is successful create_activity_dict = { "Project_Name": activity_name, "Deadline": open_date, "Major": genre, "0": application_list_zero, "1": application_list_one } create_activities.append(create_activity_dict) return jsonify(create_activities, 200) return add_cors(jsonify("You do not have any created acticities", 400))