def meetings_history(eigs):
    meetings = [
        Meeting(eigs[0], eigs[3], done=True),
        Meeting(eigs[4], eigs[8], done=True),
        Meeting(eigs[6], eigs[10], done=True),
        Meeting(eigs[9], eigs[2], done=True),
    ]
    return MeetingSet(meetings=meetings)
Ejemplo n.º 2
0
def test_meeting_set_contains():
    eig_1 = Eig(name="eig 1", project="project 1")
    eig_2 = Eig(name="eig 2", project="project 2")
    eig_3 = Eig(name="eig 3", project="project 3")

    meetings_set = MeetingSet(meetings=[Meeting(eig_1=eig_1, eig_2=eig_2)])
    assert Meeting(eig_1=eig_1, eig_2=eig_2) in meetings_set
    # Reversed meeting
    assert Meeting(eig_1=eig_2, eig_2=eig_1) in meetings_set
    assert Meeting(eig_1=eig_2, eig_2=eig_3) not in meetings_set
Ejemplo n.º 3
0
def test_meeting_overlap():
    eig_1 = Eig(name="eig 1", project="project 1")
    eig_2 = Eig(name="eig 2", project="project 2")
    eig_3 = Eig(name="eig 3", project="project 3")
    eig_4 = Eig(name="eig 4", project="project 3")

    meeting_1 = Meeting(eig_1=eig_1, eig_2=eig_2)
    meeting_2 = Meeting(eig_1=eig_1, eig_2=eig_3)
    meeting_3 = Meeting(eig_1=eig_3, eig_2=eig_4)
    assert meeting_1.overlap(meeting_2)
    assert not meeting_1.overlap(meeting_3)
Ejemplo n.º 4
0
def test_get_meeting_join_info(client: FlaskClient) -> None:
    user1 = User(uuid=example_uuid1)
    user2 = User(uuid=example_uuid2)
    user3 = User(uuid=example_uuid3)
    meeting = Meeting(uuid=example_uuid4,
                      owner=user1,
                      name='Lorem ipsum',
                      description='Lorem ipsum sit dolor amet.',
                      datetime=datetime(2020, 1, 2, 3, 4, 5))
    membership1 = Membership(meeting=meeting, user=user1, nickname='Alice')
    membership2 = Membership(meeting=meeting, user=user2, nickname='Bob')
    membership3 = Membership(meeting=meeting, user=user3, nickname='Charlie')
    db.session.add(membership1)
    db.session.add(membership2)
    db.session.add(membership3)
    db.session.commit()

    response = client.get(f'/api/v1/meetings/{meeting.uuid}')
    assert response.status_code == 200
    assert response.json == {
        'name': 'Lorem ipsum',
        'datetime': '2020-01-02T03:04:05',
        'members_count': 3,
        'owner_nickname': 'Alice',
    }
Ejemplo n.º 5
0
def test_meeting_participate():
    eig_1 = Eig(name="eig 1", project="project 1")
    eig_2 = Eig(name="eig 2", project="project 2")
    eig_3 = Eig(name="eig 3", project="project 3")

    meeting = Meeting(eig_1=eig_1, eig_2=eig_2)
    assert meeting.eig_participate(eig_1)
    assert meeting.eig_participate(eig_2)
    assert not meeting.eig_participate(eig_3)
Ejemplo n.º 6
0
def test_leave_meeting_owner(client: FlaskClient) -> None:
    owner = User(uuid=example_uuid1)
    meeting = Meeting(uuid=example_uuid2, owner=owner)
    membership = Membership(meeting=meeting, user=owner)
    db.session.add(membership)
    db.session.commit()

    response = client.delete(
        f'/api/v1/memberships/{meeting.uuid}/{owner.uuid}')
    assert response.status_code == 403
    assert response.json == {'error': 'Meeting owner cannot leave meeting'}
Ejemplo n.º 7
0
def test_get_from_hash():
    eig_1 = Eig(name="eig 1", project="project 1")
    eig_2 = Eig(name="eig 2", project="project 2")
    promo = Promo(promo_number=1, eigs=[eig_1, eig_2])
    done = True
    meeting = Meeting(eig_1=eig_1, eig_2=eig_2, done=done)
    hash = f"{eig_1.get_hash()}_{eig_2.get_hash()}"
    meeting_from_hash = Meeting.get_from_hash(meeting_hash=hash,
                                              promo=promo,
                                              done=done)
    assert meeting == meeting_from_hash
Ejemplo n.º 8
0
def test_get_membership_details(client: FlaskClient) -> None:
    user1 = User(uuid=example_uuid1)
    user2 = User(uuid=example_uuid2)
    meeting = Meeting(uuid=example_uuid3,
                      owner=user1,
                      name='Lorem ipsum',
                      description='Lorem ipsum sit dolor amet.',
                      datetime=datetime(2020, 1, 2, 3, 4, 5),
                      stop_name='Czarnowiejska')
    membership1 = Membership(meeting=meeting,
                             user=user1,
                             nickname='Alice',
                             stop_name='Kawiory')
    membership2 = Membership(meeting=meeting,
                             user=user2,
                             nickname='Bob',
                             stop_name='Muzeum Narodowe')
    db.session.add(membership1)
    db.session.add(membership2)
    db.session.commit()

    response = client.get(f'/api/v1/memberships/{meeting.uuid}/{user2.uuid}')
    assert response.status_code == 200
    assert response.json == {
        'uuid':
        meeting.uuid,
        'name':
        'Lorem ipsum',
        'description':
        'Lorem ipsum sit dolor amet.',
        'datetime':
        '2020-01-02T03:04:05',
        'stop_name':
        'Czarnowiejska',
        'members': [
            {
                'nickname': 'Alice',
                'is_owner': True,
                'is_you': False,
                'stop_name': 'Kawiory',
            },
            {
                'nickname': 'Bob',
                'is_owner': False,
                'is_you': True,
                'stop_name': 'Muzeum Narodowe',
            },
        ],
        'membership': {
            'is_owner': False,
            'stop_name': 'Muzeum Narodowe',
        }
    }
Ejemplo n.º 9
0
def test_join_meeting_already_a_member(client: FlaskClient) -> None:
    owner = User(uuid=example_uuid1)
    user = User(uuid=example_uuid2)
    meeting = Meeting(uuid=example_uuid3, owner=owner)
    membership = Membership(meeting=meeting, user=user, nickname='Bob')
    db.session.add(membership)
    db.session.commit()

    response = client.put(f'/api/v1/memberships/{meeting.uuid}/{user.uuid}',
                          json={'nickname': 'Bobby'})
    assert response.status_code == 400
    assert response.json == {'error': 'Already a member'}
Ejemplo n.º 10
0
def test_get_user_meetings(client: FlaskClient) -> None:
    user1 = User(uuid=example_uuid1)
    user2 = User(uuid=example_uuid2)
    user3 = User(uuid=example_uuid3)
    meeting1 = Meeting(uuid=example_uuid4, owner=user1, name='Lorem ipsum')
    meeting2 = Meeting(uuid=example_uuid5,
                       owner=user2,
                       datetime=datetime(2020, 1, 2, 3, 4, 5))
    membership1 = Membership(meeting=meeting1, user=user1, nickname='Alice')
    membership2 = Membership(meeting=meeting1, user=user3, nickname='Charlie')
    membership3 = Membership(meeting=meeting2, user=user1, nickname='Ala')
    membership4 = Membership(meeting=meeting2, user=user2, nickname='Bob')
    membership5 = Membership(meeting=meeting2, user=user3, nickname='Charlie')
    db.session.add(membership1)
    db.session.add(membership2)
    db.session.add(membership3)
    db.session.add(membership4)
    db.session.add(membership5)
    db.session.commit()

    response = client.get(f'/api/v1/users/{user1.uuid}/meetings')
    assert response.status_code == 200
    assert response.json == {
        'meetings': [
            {
                'uuid': meeting1.uuid,
                'name': 'Lorem ipsum',
                'nickname': 'Alice',
                'datetime': None,
                'members_count': 2,
            },
            {
                'uuid': meeting2.uuid,
                'name': None,
                'nickname': 'Ala',
                'datetime': '2020-01-02T03:04:05',
                'members_count': 3,
            },
        ]
    }
Ejemplo n.º 11
0
def meeting(meeting_id):
    if request.method == 'PUT':
        meeting_data = Meeting(**get_request_data(request),
                               e_tag=request.headers.get('If-Match'))
        if not meeting_data.validate():
            return json_response({"message": "Meeting form is invalid"}, 400)

        return meeting_data.update(db.meetings, meeting_id, db.rooms, g.user)

    elif request.method == 'GET':
        return find_one_response(db.meetings, meeting_id)
    else:
        return delete_one_response(db.meetings, meeting_id)
Ejemplo n.º 12
0
 def get(self):
     calendar = ManUpCalendar()
     feed = calendar.get_feed()
     for entry in feed.entry:
         for a_when in entry.when:
             date_string = a_when.start_raw[:19]
             date = datetime.datetime.strptime(date_string,
                                               '%Y-%m-%dT%H:%M:%S')
             for where in entry.where:
                 meeting = Meeting(name=entry.title.text,
                                   start_date=date,
                                   location=where.value)
                 meeting.put()
Ejemplo n.º 13
0
def test_edit_membership_details(client: FlaskClient) -> None:
    user = User(uuid=example_uuid1)
    meeting = Meeting(uuid=example_uuid2, owner=user)
    membership = Membership(meeting=meeting, user=user)
    db.session.add(membership)
    db.session.commit()

    response = client.patch(f'/api/v1/memberships/{meeting.uuid}/{user.uuid}',
                            json={'stop_name': 'Chopina'})
    assert response.status_code == 204
    assert response.data == b''

    membership = Membership.query.get((meeting.uuid, user.uuid))
    assert membership.stop_name == 'Chopina'
Ejemplo n.º 14
0
def fixtures_load():
    User.query.delete()

    users = [
        {
            'full_name': 'Максим Скочинский',
            'email': '*****@*****.**',
            'role': User.ROLE_MANAGER,
            'username': '******',
            'password': '******'
        },
        {
            'full_name': 'Максим Скочинский',
            'email': '*****@*****.**',
            'role': User.ROLE_ADMINISTRATOR,
            'username': '******',
            'password': '******'
        },

    ]

    for user in users:
        manager = User()
        manager.full_name = user.get('full_name')
        manager.email = user.get('email')
        manager.role = user.get('role')
        manager.username = user.get('username')
        manager.set_password(user.get('password'))
        manager.generate_token()
        db.session.add(manager)

        for i in range(10):
            client = Client()
            client.full_name = fake.name()
            client.user = manager
            client.organization_name = fake.company()
            client.address = fake.address()
            client.phone_number = fake.phone_number()
            db.session.add(client)

            meeting = Meeting()
            meeting.user = manager
            meeting.client = client
            meeting.datetime = datetime.today() - timedelta(minutes=30)
            meeting.goal = 'Договор'
            meeting.address = client.address
            db.session.add(meeting)

    db.session.commit()
    pass
Ejemplo n.º 15
0
def test_leave_meeting(client: FlaskClient) -> None:
    owner = User(uuid=example_uuid1)
    user = User(uuid=example_uuid2)
    meeting = Meeting(uuid=example_uuid3, owner=owner)
    membership1 = Membership(meeting=meeting, user=owner)
    membership2 = Membership(meeting=meeting, user=user)
    db.session.add(membership1)
    db.session.add(membership2)
    db.session.commit()

    response = client.delete(f'/api/v1/memberships/{meeting.uuid}/{user.uuid}')
    assert response.status_code == 204
    assert response.data == b''

    assert Membership.query.get((meeting.uuid, user.uuid)) is None
Ejemplo n.º 16
0
def test_delete_outdated_meetings(session: Session, dt: Optional[datetime], should_be_deleted: bool):
    owner = User(uuid=example_uuid1)
    user = User(uuid=example_uuid2)
    meeting = Meeting(uuid=example_uuid3, owner=owner, datetime=dt)
    membership1 = Membership(meeting=meeting, user=owner, nickname='Alice')
    membership2 = Membership(meeting=meeting, user=user, nickname='Bob')
    db.session.add(membership1)
    db.session.add(membership2)
    db.session.commit()

    delete_outdated_meetings(session)

    assert (Meeting.query.get(example_uuid3) is None) is should_be_deleted
    assert (Membership.query.get((example_uuid3, example_uuid1)) is None) is should_be_deleted
    assert (Membership.query.get((example_uuid3, example_uuid2)) is None) is should_be_deleted
Ejemplo n.º 17
0
 def get_meeting_values(self):
     if not self.meet:
         self.meet = Meeting()
         self.meet.id = 0
     validator = Valid()
     self.meet.main_referee_id = self.main_referee.id
     self.meet.main_clerk_id = self.main_clerk.id
     self.meet.name = validator.escape(self.ui.nameEdit.text())
     self.meet.start_date = self.ui.startDate.date().toPyDate().strftime(
         '%Y-%m-%d')
     self.meet.end_date = self.ui.endDate.date().toPyDate().strftime(
         '%Y-%m-%d')
     self.meet.city = validator.escape(self.ui.cityEdit.text())
     self.meet.meetcount = self.ui.meetCountEdit.text()
     self.meet.main_referee_id = self.main_referee.id
     self.meet.main_clerk_id = self.main_clerk.id
     return self.meet
Ejemplo n.º 18
0
def test_join_meeting(client: FlaskClient) -> None:
    owner = User(uuid=example_uuid1)
    user = User(uuid=example_uuid2)
    meeting = Meeting(uuid=example_uuid3, owner=owner)
    db.session.add(meeting)
    db.session.add(user)
    db.session.commit()

    response = client.put(f'/api/v1/memberships/{meeting.uuid}/{user.uuid}',
                          json={'nickname': 'Bob'})
    assert response.status_code == 204
    assert response.data == b''

    membership = Membership.query.get((meeting.uuid, user.uuid))
    assert membership is not None
    assert membership.nickname == 'Bob'
    assert membership.stop_name is None
Ejemplo n.º 19
0
def test_delete_meeting(client: FlaskClient) -> None:
    owner = User(uuid=example_uuid1)
    user = User(uuid=example_uuid2)
    meeting = Meeting(uuid=example_uuid3, owner=owner)
    membership1 = Membership(meeting=meeting, user=owner, nickname='Alice')
    membership2 = Membership(meeting=meeting, user=user, nickname='Bob')
    db.session.add(membership1)
    db.session.add(membership2)
    db.session.commit()

    response = client.delete(f'/api/v1/meetings/{meeting.uuid}',
                             json={'owner_uuid': owner.uuid})
    assert response.status_code == 204
    assert response.data == b''

    assert Meeting.query.get(meeting.uuid) is None
    assert Membership.query.get((meeting.uuid, owner.uuid)) is None
    assert Membership.query.get((meeting.uuid, user.uuid)) is None
Ejemplo n.º 20
0
def generate_random_meetings(promo: Promo,
                             meetings_history: MeetingSet) -> List[Meeting]:
    potential_meetings = []
    for eig_1, eig_2 in itertools.combinations(promo.eigs, 2):
        meeting = Meeting(eig_1=eig_1, eig_2=eig_2, done=False)
        if (meeting
                not in meetings_history) and (eig_1.project != eig_2.project):
            potential_meetings.append(meeting)
    n_sample = int(len(promo.eigs) / 2)
    sampling_done = False
    n_max_try = 10
    n_try = 0
    while (not sampling_done) and (n_try < n_max_try):
        sampling_done, meetings = sample_meetings(potential_meetings, n_sample)
        n_try += 1
    print("Number of try: ", n_try)

    return meetings
Ejemplo n.º 21
0
def minutes():
    form = forms.AddMeetingForm()
    if request.method == 'POST' and form.validate_on_submit():
        if Meeting.query.filter_by(date=form.date.data).first():
            form.date.errors.append(
                "Meeting Minutes for this date already exist.")
            return redirect(url_for('minutes'))

        try:
            pdf_src = save_uploaded_pdf(form.pdf.data)
        except Exception:
            form.pdf.errors.append("Error saving submitted PDF")
            return redirect(url_for('minutes'))

        meeting = Meeting(form.date.data, pdf_src)
        db.session.add(meeting)
        db.session.commit()

    meetings = Meeting.query.order_by(db.desc(Meeting.date)).all()
    return render_template('main/minutes.html', form=form, meetings=meetings)
Ejemplo n.º 22
0
def create_meeting():
    check_json_data()
    owner_uuid = get_owner_uuid()
    name = get_meeting_name()
    description = get_meeting_description()
    dt = get_datetime()
    nickname = get_nickname()

    owner = find_user(owner_uuid)

    meeting = Meeting(name=name,
                      description=description,
                      datetime=dt,
                      owner=owner)
    membership = Membership(meeting=meeting, user=owner, nickname=nickname)
    db.session.add(membership)
    db.session.commit()

    return make_response({
        'uuid': meeting.uuid,
    }, 201, {'Location': f'/api/v1/meetings/{meeting.uuid}'})
Ejemplo n.º 23
0
def test_edit_meeting(client: FlaskClient) -> None:
    owner = User(uuid=example_uuid1)
    meeting = Meeting(uuid=example_uuid2, owner=owner)
    db.session.add(meeting)
    db.session.commit()

    response = client.patch(f'/api/v1/meetings/{meeting.uuid}',
                            json={
                                'owner_uuid': owner.uuid,
                                'name': 'Lorem ipsum',
                                'description': 'Lorem ipsum sit dolor amet.',
                                'datetime': '2020-01-02T03:04:05',
                                'stop_name': 'Czarnowiejska',
                            })
    assert response.status_code == 204

    meeting = Meeting.query.get(meeting.uuid)
    assert meeting.name == 'Lorem ipsum'
    assert meeting.description == 'Lorem ipsum sit dolor amet.'
    assert meeting.datetime == datetime(2020, 1, 2, 3, 4, 5)
    assert meeting.stop_name == 'Czarnowiejska'
def postMeeting():
    data = request.get_json()
    date = str(data['date'])
    meeting_time = str(data['meeting_time'])
    attended = str(data['attended'])
    topics = str(data['topics'])
    todo = str(data['todo'])
    completed = str(data['completed'])

    try:
        meeting= Meeting(
            date = date,
            meeting_time = meeting_time,
            attended = attended,
            topics = topics,
            todo = todo,
            completed = completed
        )
        db.session.add(meeting)
        db.session.commit()
        return "Meeting Added"
    except Exception as e:
        return str(e)
Ejemplo n.º 25
0
    def post(self):
        args = post_sched_parser.parse_args()

        meeting = Meeting(meeting_time=args['meeting_time'],
                          location=args['location'],
                          course_id=args['course_id'],
                          conversation_id=args['conversation_id'],
                          requestor_id=args['requestor_id'],
                          group_requestor_id=args['group_requestor_id'])
        if meeting == None:
            return 401

        convo = Conversation.query.filter_by(
            id=args['conversation_id']).first()
        if convo == None:
            return 401

        if convo.group_id == None:
            if convo.student_id == int(args["requestor_id"]):
                meeting.tutor_id = convo.tutor_id
            else:
                meeting.student_id = convo.student_id
        elif convo.student_id == None:
            if convo.tutor_id == int(args["requestor_id"]):
                meeting.group_id = convo.group_id
            else:
                meeting.tutor_id = convo.tutor_id
        else:
            if convo.student_id == int(args["requestor_id"]):
                meeting.group_id = convo.group_id
            else:
                meeting.student_id = convo.student_id

        db.session.add(meeting)
        db.session.commit()
        return 201
Ejemplo n.º 26
0
def meetings(id=None):
    if request.method == 'GET':
        if id is not None:
            meeting = Meeting.query.get(id)
            if meeting:
                return jsonify(meeting.serialize()), 200
            else:
                return jsonify({"msg": "meeting not found"}), 404
        else:
            meetings = Meeting.query.all()
            meetings = list(map(lambda meeting: meeting.serialize(), meetings))
            return jsonify(meetings), 200

    if request.method == 'POST':

        #create_date = request.json.get('create_date', None)
        meeting_date = request.json.get('meeting_date', None)
        meeting_hour = request.json.get('meeting_hour', None)
        project_name = request.json.get('project_name', None)
        title = request.json.get('title', None)
        topics = request.json.get('topics', None)
        guests = request.json.get('guests', None)
        place = request.json.get('place', None)
        description = request.json.get('description', None)
        target = request.json.get('target', None)
        done = request.json.get('done', None)
        user_id = request.json.get('user_id', None)

        if not meeting_date:
            return jsonify({"msg": "date is required"}), 422
        if not meeting_hour:
            return jsonify({"msg": "hour is required"}), 422
        if not project_name:
            return jsonify({"msg": "project name is required"}), 422
        if not title:
            return jsonify({"msg": "title is required"}), 422
        if not place:
            return jsonify({"msg": "place is required"}), 422

        meeting = Meeting()
        #meeting.create_date = create_date
        meeting.meeting_date = meeting_date
        meeting.meeting_hour = meeting_hour
        meeting.project_name = project_name
        meeting.title = title
        meeting.place = place
        meeting.description = description
        meeting.target = target
        meeting.done = done
        meeting.user_id = user_id

        db.session.add(meeting)
        db.session.commit()

        if topics:
            if len(topics) > 1:
                for x in range(len(topics)):
                    top = Topic()
                    top.title = topics[x]["title"]
                    top.priority = topics[x]["priority"]
                    top.notes = topics[x]["notes"]
                    top.care = topics[x]["care"]
                    top.tracking = topics[x]["tracking"]
                    top.duration = topics[x]["duration"]
                    top.meeting_id = meeting.id
                    db.session.add(top)
            else:
                top = Topic()
                top.title = topics[0]["title"]
                top.priority = topics[0]["priority"]
                top.notes = topics[0]["notes"]
                top.care = topics[0]["care"]
                top.tracking = topics[0]["tracking"]
                top.duration = topics[0]["duration"]
                top.meeting_id = meeting.id
                db.session.add(top)

            db.session.commit()

        if guests:
            if len(guests) > 1:
                for x in range(len(guests)):
                    gue = Guest()
                    gue.fullname = guests[x]["fullname"]
                    gue.email = guests[x]["email"]
                    gue.rol = guests[x]["rol"]
                    gue.meeting_id = meeting.id
                    db.session.add(gue)
            else:
                gue = Guest()
                gue.fullname = guests[0]["fullname"]
                gue.email = guests[0]["email"]
                gue.rol = guests[0]["rol"]
                gue.meeting_id = meeting.id
                db.session.add(gue)

            db.session.commit()

        return jsonify(meeting.serialize()), 201

    if request.method == 'PUT':

        #create_date = request.json.get('create_date', None)
        meeting_date = request.json.get('meeting_date', None)
        meeting_hour = request.json.get('meeting_hour', None)
        project_name = request.json.get('project_name', None)
        title = request.json.get('title', None)
        topics = request.json.get('topics', None)
        guests = request.json.get('guests', None)
        place = request.json.get('place', None)
        description = request.json.get('description', None)
        target = request.json.get('target', None)
        done = request.json.get('done', None)
        user_id = request.json.get('user_id', None)

        # if not meeting_date:
        #     return jsonify({"msg": "date is required"}), 422
        # if not meeting_hour:
        #     return jsonify({"msg": "hour is required"}), 422
        # if not project_name:
        #     return jsonify({"msg": "project name is required"}), 422
        # if not title:
        #     return jsonify({"msg": "title is required"}), 422
        # if not place:
        #     return jsonify({"msg": "place is required"}), 422

        meeting = Meeting.query.get(id)

        if not meeting:
            return jsonify({"msg": "meeting not found"}), 404

        #meeting.create_date = create_date
        meeting.meeting_date = meeting_date
        meeting.meeting_hour = meeting_hour
        meeting.project_name = project_name
        meeting.title = title
        meeting.place = place
        meeting.description = description
        meeting.target = target
        meeting.done = done
        meeting.user_id = user_id

        db.session.commit()

        if topics:
            if len(topics) > 0:
                for x in range(len(topics)):
                    if topics[x]["id"] == 0:
                        top = Topic()
                        top.title = topics[x]["title"]
                        top.priority = topics[x]["priority"]
                        top.notes = topics[x]["notes"]
                        top.care = topics[x]["care"]
                        top.tracking = topics[x]["tracking"]
                        top.duration = topics[x]["duration"]
                        top.meeting_id = meeting.id
                        db.session.add(top)
                    else:
                        top = Topic.query.get(topics[x]["id"])
                        top.title = topics[x]["title"]
                        top.priority = topics[x]["priority"]
                        top.notes = topics[x]["notes"]
                        top.care = topics[x]["care"]
                        top.tracking = topics[x]["tracking"]
                        top.duration = topics[x]["duration"]
                        top.meeting_id = meeting.id

            db.session.commit()

        if guests:
            if len(guests) > 0:
                for x in range(len(guests)):
                    if guests[x]["id"] == 0:
                        gue = Guest()
                        gue.fullname = guests[x]["fullname"]
                        gue.email = guests[x]["email"]
                        gue.rol = guests[x]["rol"]
                        gue.meeting_id = meeting.id
                        db.session.add(gue)
                    else:
                        gue = Guest.query.get(guests[x]["id"])
                        gue.fullname = guests[x]["fullname"]
                        gue.email = guests[x]["email"]
                        gue.rol = guests[x]["rol"]
                        gue.meeting_id = meeting.id

            db.session.commit()

        return jsonify(meeting.serialize()), 200

    if request.method == 'DELETE':

        Topic.query.filter_by(meeting_id=id).delete()
        Guest.query.filter_by(meeting_id=id).delete()
        meeting = Meeting.query.get(id)

        if not meeting:
            return jsonify({"msg": "meeting not found"}), 404

        db.session.delete(meeting)
        db.session.commit()
        return jsonify({"msg": "meeting deleted"}), 200
Ejemplo n.º 27
0
def initdb_command():
    """Reinitializes the database"""
    db.drop_all()
    db.create_all()
    db.session.commit()

    users = []
    users.append(User('Bob', 'Smith', '*****@*****.**', '1111111111', '123'))  #1
    users.append(User('Carol', 'Stevens', '*****@*****.**', '1111111111',
                      '123'))  #2
    users.append(User('Anna', 'Martin', '*****@*****.**', '1111111111',
                      '123'))  #3
    users.append(User('Daniel', 'Rutgers', '*****@*****.**', '1111111111',
                      '123'))  #4
    users.append(User('Frank', 'Lorris', '*****@*****.**', '1111111111',
                      '123'))  #5
    users.append(User('John', 'McNault', '*****@*****.**', '1111111111',
                      '123'))  #6
    users.append(User('Peter', 'Johnson', '*****@*****.**', '1111111111',
                      '123'))  #7
    users.append(User('Laura', 'Smith', '*****@*****.**', '1111111111',
                      '123'))  #8
    users.append(User('Jennifer', 'Raj', '*****@*****.**', '1111111111',
                      '123'))  #9
    users.append(User('Quan', 'Billson', '*****@*****.**', '1111111111',
                      '123'))  #10
    users.append(User('Jamil', 'Reckta', '*****@*****.**', '1111111111',
                      '123'))  #11
    users.append(User('Victor', 'Rapedip', '*****@*****.**', '1111111111',
                      '123'))  #12
    users.append(User('Mark', 'Zuck', '*****@*****.**', '1111111111',
                      '123'))  #13
    users.append(User('Laura', 'shpeng', '*****@*****.**', '1111111111',
                      '123'))  #14
    for x in users:
        db.session.add(x)
    db.session.commit()

    groups = []
    groups.append(
        Group('CS1530 Guys', 'A bunch of dudes studying software engineering',
              1))  #group 1
    groups.append(Group('CS1530 Girls', 'Ladies is pimps too', 1))  #group 2
    groups.append(Group('Go Eagles', 'Phily > PIttsburgh',
                        users[3].id))  #group 3
    for x in groups:
        db.session.add(x)
    db.session.commit()

    users[0].groups.append(groups[0])
    users[3].groups.append(groups[0])
    users[4].groups.append(groups[0])
    users[1].groups.append(groups[1])
    users[2].groups.append(groups[1])
    users[5].groups.append(groups[0])
    users[6].groups.append(groups[1])
    users[7].groups.append(groups[1])
    users[8].groups.append(groups[0])
    users[9].groups.append(groups[2])
    users[10].groups.append(groups[2])
    users[11].groups.append(groups[2])
    users[12].groups.append(groups[2])
    users[13].groups.append(groups[1])
    db.session.commit()

    courses = []
    courses.append(
        Course('Software Engineering',
               'Formal methods of software engineering', 'CS', 1530))  #0
    courses.append(
        Course('Database Management Systems', 'Database Management Systems',
               'CS', 1555))  #1
    courses.append(Course('Web Applications', 'Web Applications', 'CS',
                          1520))  #2
    courses.append(Course('Operating Systems', 'Operating Systems', 'CS',
                          1550))  #3
    courses.append(
        Course('Interface Design Methodology',
               'Interface design for mobile applications', 'CS', 1635))  #4
    courses.append(
        Course('High performance computing',
               'Introduction to high performance computing', 'CS', 1645))  #5
    courses.append(
        Course('Intro to Data Science', 'Intro to Data Science', 'CS',
               1656))  #6
    courses.append(
        Course('Intmdt Prog Using Java', 'Intermediate programming with java',
               'CS', 401))  #7
    courses.append(
        Course('Data Structures', 'Intro to data structures', 'CS', 445))  #8
    courses.append(
        Course('Intro to System Software', 'Introduction to system software',
               'CS', 449))  #9

    for x in courses:
        db.session.add(x)

    db.session.commit()

    for i, x in enumerate(users):
        if i < 5:
            x.current_courses.append(courses[0])
            x.current_courses.append(courses[1])
            x.current_courses.append(courses[2])
            x.current_courses.append(courses[3])
            x.current_courses.append(courses[4])
        else:
            x.current_courses.append(courses[5])
            x.current_courses.append(courses[6])
            x.current_courses.append(courses[7])
            x.current_courses.append(courses[8])
            x.current_courses.append(courses[9])

    users.append(User('John', 'Doe', '*****@*****.**', '1111111111', '123'))

    for i, x in enumerate(users):
        if i < 7:
            x.past_courses.append(courses[5])
            x.past_courses.append(courses[6])
            x.past_courses.append(courses[7])
            x.past_courses.append(courses[8])
            x.past_courses.append(courses[9])
        else:
            x.past_courses.append(courses[0])
            x.past_courses.append(courses[1])
            x.past_courses.append(courses[2])
            x.past_courses.append(courses[3])
            x.past_courses.append(courses[4])

    db.session.commit()

    groups[0].group_courses.append(courses[0])
    groups[1].group_courses.append(courses[0])
    groups[2].group_courses.append(courses[3])

    db.session.commit()

    convos = []
    # group_id, tutor_id, student_id
    convos.append(Conversation(None, users[2].id, users[3].id))  #1
    convos.append(Conversation(groups[0].id, None, users[3].id))  #2
    convos.append(Conversation(groups[1].id, None, users[1].id))  #3
    convos.append(Conversation(None, users[1].id, users[0].id))  #4
    convos.append(Conversation(groups[2].id, None, users[4].id))  #5

    convos.append(Conversation(None, users[6].id, users[7].id))  #6
    convos.append(Conversation(None, users[9].id, users[8].id))  #7
    convos.append(Conversation(None, users[10].id, users[12].id))  #8

    for x in convos:
        db.session.add(x)

    db.session.commit()

    messages = []
    messages.append(
        Message(users[2].id, datetime.datetime.now(),
                "What time would be good to meet?", convos[0].id))
    messages.append(
        Message(users[3].id, datetime.datetime.now(), "Never dumbass LOL",
                convos[0].id))
    messages.append(
        Message(users[2].id, datetime.datetime.now(), "Why can't you help me?",
                convos[0].id))
    messages.append(
        Message(users[3].id, datetime.datetime.now(),
                "Was just joking, send me a meeting request", convos[0].id))

    messages.append(
        Message(users[1].id, datetime.datetime.now(),
                "Shalom, looks like a prety cool group", convos[1].id))
    messages.append(
        Message(groups[0].id, datetime.datetime.now(),
                "Yeah I know were pretty sick", convos[1].id))

    messages.append(
        Message(groups[0].id, datetime.datetime.now(),
                "I don't know how to do problem number 3 from quiz 1",
                convos[1].id))
    messages.append(
        Message(groups[0].id, datetime.datetime.now(), "Can anyone help me?",
                convos[1].id))

    messages.append(
        Message(users[1].id, datetime.datetime.now(),
                "What is this group for?", convos[2].id))
    messages.append(
        Message(users[1].id, datetime.datetime.now(), "Read the BIO!",
                convos[2].id))

    messages.append(
        Message(users[1].id, datetime.datetime.now(),
                "What grade did you get in data structures?", convos[3].id))
    messages.append(
        Message(users[0].id, datetime.datetime.now(), "An A-", convos[3].id))
    messages.append(
        Message(users[1].id, datetime.datetime.now(),
                "Great! Let's schedule a tutoring session", convos[3].id))

    messages.append(
        Message(
            users[4].id, datetime.datetime.now(),
            "If anyone needs assistance with their homework 3, shoot me a message",
            convos[4].id))  #5
    messages.append(
        Message(groups[2].id, datetime.datetime.now(),
                "I think we all do, can we set up a group tutoring session",
                convos[4].id))

    messages.append(
        Message(
            users[6].id, datetime.datetime.now(),
            "Struggling alot in 445, I saw you recently took that class. Can we set up a tutoring sesson?",
            convos[5].id))
    messages.append(
        Message(users[7].id, datetime.datetime.now(), "Yes absolutely",
                convos[5].id))
    messages.append(
        Message(users[6].id, datetime.datetime.now(),
                "Great! Let's schedule a tutoring session", convos[5].id))

    messages.append(
        Message(
            users[9].id, datetime.datetime.now(),
            "Struggling alot in 1501, I saw you recently took that class. Can we set up a tutoring sesson?",
            convos[6].id))
    messages.append(
        Message(users[8].id, datetime.datetime.now(), "Yes absolutely",
                convos[6].id))
    messages.append(
        Message(users[9].id, datetime.datetime.now(),
                "Great! Let's schedule a tutoring session", convos[6].id))

    messages.append(
        Message(
            users[10].id, datetime.datetime.now(),
            "Struggling alot in system architecture, I saw you recently took that class. Can we set up a tutoring sesson?",
            convos[7].id))
    messages.append(
        Message(users[12].id, datetime.datetime.now(), "Yes absolutely",
                convos[7].id))
    messages.append(
        Message(users[10].id, datetime.datetime.now(),
                "Great! Let's schedule a tutoring session", convos[7].id))

    for x in messages:
        db.session.add(x)
    db.session.commit()

    meeting_reqs = []
    meeting_reqs.append(
        Meeting(str(datetime.datetime.now().strftime("%Y-%m-%d %H:%M")),
                "Cathy", courses[2].id, convos[1].id, users[3].id, None))
    meeting_reqs.append(
        Meeting(str(datetime.datetime.now().strftime("%Y-%m-%d %H:%M")),
                "Benny", courses[2].id, convos[1].id, None, groups[0].id))
    meeting_reqs.append(
        Meeting(str(datetime.datetime.now().strftime("%Y-%m-%d %H:%M")),
                "Hillman", courses[0].id, convos[0].id, users[1].id, None))
    meeting_reqs.append(
        Meeting(str(datetime.datetime.now().strftime("%Y-%m-%d %H:%M")),
                "Market", courses[1].id, convos[2].id, users[1].id, None))

    for x in meeting_reqs:
        db.session.add(x)
    db.session.commit()

    contact_req = []
    contact_req.append(
        ContactRequest("Yo yo yo, add me dawg", users[0].id, users[0].id, None,
                       groups[1].id))
    contact_req.append(
        ContactRequest("Hiyah I need a tutor", users[2].id, users[2].id,
                       users[3].id, None))

    for x in contact_req:
        db.session.add(x)
    db.session.commit()
Ejemplo n.º 28
0
    def __init__(self, meet=[]):

        super(MeetingDialog, self).__init__()
        self.initialize = False
        self.ui = CreateMeetingSlots()
        self.ui.setupUi(self)
        self.ui.addButton.clicked.connect(self.add_member_pressed)
        self.ui.removeButton.clicked.connect(self.remove_member_pressed)
        self.ui.raddButton.clicked.connect(self.radd_pressed)
        self.ui.rremoveButton.clicked.connect(self.rremove_pressed)
        # self.ui.refShedule.clicked.connect(self.refshed_pressed)
        self.ui.wsortitionButton.clicked.connect(self.wsortition_pressed)
        self.ui.sortitionButton.clicked.connect(self.sortition_pressed)
        self.ui.cancel.clicked.connect(self.cancel_pressed)
        self.ui.weightcatCBox.currentIndexChanged.connect(
            self.weight_category_changed)
        self.ui.mainrefCBox.currentIndexChanged.connect(
            self.main_referee_changed)
        self.ui.mainclerkCBox.currentIndexChanged.connect(
            self.main_clerk_changed)
        #
        self.ring = 1
        self.meet = None
        if meet:
            self.meet = Meeting(meet)

        self.dbm = dbmanager()

        self.members = []
        self.referees = []
        self.weight_categories = []
        self.meet_referees = []
        self.not_meet_referees = []
        self.meet_members = []
        self.not_meet_members = []
        self.current_weight_category = None
        self.main_referee = None
        self.main_clerk = None

        #элементы листбокса участников храню отдельно
        self.meet_members_items = {}
        self.weight_categories_ids = []

        self.fighting_service = FightingsService(self.meet)

        try:
            self.fill_data()
        except Exception as e:
            print(e)

        if self.fighting_service.fightings_count:
            self.ui.addButton.setEnabled(False)
            self.ui.removeButton.setEnabled(False)

        self.initialize = True

        self.ui.weightcatCBox.setCurrentIndex(-1)
        self.ui.weightcatCBox.setCurrentIndex(0)

        self.ui.membersList.setContextMenuPolicy(QtCore.Qt.CustomContextMenu)
        self.ui.membersList.customContextMenuRequested.connect(self.show_cmenu)

        self.ui.membersList.itemPressed.connect(self.memberListItem_pressed)
        self.ui.athletesList.itemPressed.connect(self.athletesListItem_pressed)
        '''# TODO: сделать список выбора и заполнить его весовыми категориями'''