def meeting_create(): meeting_inputted_fields = meeting_schema.load(request.json) username_of_jwt = get_jwt_identity() user_of_jwt = User.query.get(username_of_jwt) if not user_of_jwt: return abort(404, description="User does not exist") # user_id = get_jwt_identity() meeting_object_from_fields = Meeting() meeting_object_from_fields.username = username_of_jwt meeting_object_from_fields.time_start = meeting_inputted_fields[ "time_start"] meeting_object_from_fields.time_end = meeting_inputted_fields["time_end"] meeting_object_from_fields.location = meeting_inputted_fields["location"] meeting_object_from_fields.subject = meeting_inputted_fields["subject"] meeting_object_from_fields.description = meeting_inputted_fields[ "description"] meeting_object_from_fields.last_updated = meeting_inputted_fields[ "last_updated"] db.session.add(meeting_object_from_fields) db.session.commit() return jsonify(meeting_schema.dump(meeting_object_from_fields))
def schedule_meeting(self, employeeID, requestedInterval): if not self.is_valid_request(employeeID, requestedInterval): return for room in Scheduler.meetingRooms: booked_intervals = [] for meeting in room.bookedMeetings: booked_intervals.append( TimeInterval(meeting.TimeInterval.startTime, meeting.TimeInterval.endTime)) if len(booked_intervals) == 0 or (requestedInterval.endTime < booked_intervals[0].startTime): new_meeting = Meeting(Scheduler.meetingIds.pop(), requestedInterval, employeeID) if not self._update_meetings(room, employeeID, new_meeting): return print( "Meeting scheduled. Room ID : {}, Meeting ID : {}".format( room.meetingRoomID, new_meeting.meetingId)) return i = 0 while i < (len(booked_intervals) - 1): prev = booked_intervals[i] next = booked_intervals[i + 1] if requestedInterval.startTime > prev.endTime and requestedInterval.endTime < next.startTime: new_meeting = Meeting(Scheduler.meetingIds.pop(), requestedInterval, employeeID) if not self._update_meetings(room, employeeID, new_meeting): return print("Meeting scheduled. Room ID : {}, Meeting ID : {}". format(room.meetingRoomID, new_meeting.meetingId)) return i = i + 1 if requestedInterval.startTime > booked_intervals[i].endTime: new_meeting = Meeting(Scheduler.meetingIds.pop(), requestedInterval, employeeID) if not self._update_meetings(room, employeeID, new_meeting): return print( "Meeting scheduled. Room ID : {}, Meeting ID : {}".format( room.meetingRoomID, new_meeting.meetingId)) return print("Error : All rooms busy for the given time interval.")
def addMeeting(self): meeting = Meeting() meeting.employee_id = 10 meeting.room_id = 3 meeting.start_time = "2018-11-03 01:00:00" meeting.end_time = "2018-11-05 01:00:00" print Meeting.add(meeting) print meeting.meeting_id
def getByTime(self): start_time = "2018-11-02 9:00:00" end_time = "2018-11-03 11:00:00" meeting = Meeting.getByTime(start_time, end_time) for m in meeting: print m.room_id
def getMeeting(self): meeting_l = Meeting.getByEmployeeId(10) print meeting_l for meeting in meeting_l: print meeting.room_id print meeting.start_time print meeting.end_time print meeting.getRoom()
def getAvailableRooms(start, end, capacity=0): meetings = Meeting.getByTime(str(start), str(end)) room_ids = list() for meet in meetings: room_ids.append(meet.room_id) # print("r_id:"+meet.room_id) rooms = None if (len(room_ids) > 0): rooms = Room.service.getAllByFilterCapacity(room_ids, capacity) else: rooms = Room.service.getAll() return rooms
def dashboard(self): owned_m = Meeting.getByEmployeeId(current_user.employee_id) pending = MeetingAttendee.getByEmployeeAndStatus(current_user.employee_id, 'P') accepted = MeetingAttendee.getByEmployeeAndStatus(current_user.employee_id, 'Y') meet_att_map = {} if owned_m is not None: for m in owned_m: attendees = MeetingAttendee.getByMeetingAndStatus(m.meeting_id, "Y") meet_att_map[m.meeting_id] = attendees # print(m.end_time.year) if pending is not None: for m in pending: print(m) print(m.getMeeting().end_time) return self.view.render_dashboard(owned_m, pending, accepted, meet_att_map)
def seed_db(): from models.User import User from models.StudyHistory import StudyHistory from models.WorkHistory import WorkHistory from models.Certification import Certification from models.ResumeProject import ResumeProject from models.Meeting import Meeting from models.Message import Message from models.Connection import Connection from models.Post import Post from models.JobSalary import JobSalary from models.ITNews import ITNews from main import bcrypt from faker import Faker from random import randrange, choice from datetime import datetime now = datetime.now() faker = Faker() user_list = [] # Create fake users for i in range(5): user = User() user.username = f"test{i}" user.first_name = faker.first_name() user.last_name = faker.last_name() user.created_at = now.strftime('%Y-%m-%d %H:%M:%S') user.email = f"test{i}@gmail.com" user.password = bcrypt.generate_password_hash("123456").decode("utf-8") user.mobile = faker.phone_number() user.city = faker.city() user.country = faker.country() user.dob = faker.date_of_birth() db.session.add(user) user_list.append(user) db.session.commit() studyhistory_list = [] qualifications = ['bachelor', 'master', 'honours'] institutions = ['rmit', 'latrobe', 'monash'] for i in range(20): studyhistory = StudyHistory() studyhistory.username = choice(user_list).username studyhistory.qualification_title = choice(qualifications) studyhistory.institution = choice(institutions) studyhistory.city = faker.city() studyhistory.country = faker.country() studyhistory.date_start = faker.date_of_birth() studyhistory.date_end = faker.date_of_birth() db.session.add(studyhistory) studyhistory_list.append(studyhistory) db.session.commit() company = ['nab', 'aws', 'microsoft'] job_title = ['engineer', 'developer', 'architect'] for i in range(20): workhistory = WorkHistory() workhistory.username = choice(user_list).username workhistory.job_title = faker.job() workhistory.company = choice(company) workhistory.city = faker.city() workhistory.country = faker.country() workhistory.date_start = faker.date_of_birth() workhistory.date_end = faker.date_of_birth() db.session.add(workhistory) cert_names = ['aws cloud practitioner', 'microsoft azure administrator', 'microsoft excel'] descriptions = ['Expert', 'Advanced', 'Beginner'] issuers = ['Microsoft', 'AWS', 'Google'] for i in range(20): certification = Certification() certification.username = choice(user_list).username certification.cert_name = choice(cert_names) certification.description = choice(descriptions) certification.issuer = choice(issuers) certification.date_obtained = faker.date_of_birth() db.session.add(certification) resume_paths_list = ['file1', 'file2', 'file3'] github_account_list = ['https://github.com/mrixon95', 'https://github.com/HarryTranAU/', 'https://github.com/ashley190'] for i in range(20): resumeproject = ResumeProject() resumeproject.username = choice(user_list).username resumeproject.resume_path = choice(resume_paths_list) resumeproject.github_account = choice(github_account_list) db.session.add(resumeproject) qualifications = ['bachelor', 'master', 'honours'] institutions = ['rmit', 'latrobe', 'monash'] for i in range(20): meeting = Meeting() meeting.username = choice(user_list).username meeting.time_start = faker.date_of_birth() meeting.time_end = faker.date_of_birth() meeting.location = faker.city() meeting.subject = faker.word() meeting.description = faker.word() meeting.last_updated = faker.date_of_birth() db.session.add(meeting) db.session.commit() for i in range(5): message = Message() message.username_of_sender = user_list[i].username message.username_of_receiver = user_list[(i + 1) % 5].username message.content = faker.text() db.session.add(message) for i in range(5): connection = Connection() connection.username_of_requester = user_list[i % 5].username connection.username_of_confirmer = user_list[(i + 3) % 5].username connection.user_1_approved = True connection.user_2_approved = True connection.status = "confirmed" db.session.add(connection) for i in range(5): post = Post() post.username = user_list[i % 5].username post.content = faker.text() post.last_updated = faker.date_of_birth() db.session.add(post) for i in range(5): jobsalary = JobSalary() jobsalary.title = faker.job() jobsalary.lower_quartile = faker.random_int(30, 50) jobsalary.median_salary = faker.random_int(70, 120) jobsalary.upper_quartile = faker.random_int(150, 500) jobsalary.average_years_experience = faker.random_int(1, 10) db.session.add(jobsalary) for i in range(5): ITnews = ITNews() ITnews.article_link = faker.url() ITnews.photo_link = faker.image_url() ITnews.published_time = faker.past_date() db.session.add(ITnews) db.session.commit()
def getMeeting(self): from models.Meeting import Meeting meeting = Meeting.getById(self.meeting_id) return meeting
def updateMeeting(self): meeting = Meeting.getByEmployeeId(10) print meeting meeting.end_time = "2018-11-15 01:00:00" meeting.update()
def deleteMeeting(self): meeting = Meeting.getByEmployeeId(10) print meeting if meeting != None: print meeting.meeting_id Meeting.delete(meeting)