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))
예제 #2
0
    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.")
예제 #3
0
 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
예제 #4
0
    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
예제 #5
0
 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()
예제 #6
0
 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
예제 #7
0
    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()
예제 #9
0
 def getMeeting(self):
     from models.Meeting import Meeting
     meeting = Meeting.getById(self.meeting_id)
     return meeting
예제 #10
0
 def updateMeeting(self):
     meeting = Meeting.getByEmployeeId(10)
     print meeting
     meeting.end_time = "2018-11-15 01:00:00"
     meeting.update()
예제 #11
0
 def deleteMeeting(self):
     meeting = Meeting.getByEmployeeId(10)
     print meeting
     if meeting != None:
         print meeting.meeting_id
         Meeting.delete(meeting)