Esempio n. 1
0
def seed_groups():
    user1 = User.query.get(1)
    user2 = User.query.get(2)
    user3 = User.query.get(3)

    group1 = Group(name="Gryffindor")

    db.session.add(group1)

    group2 = Group(name="Ravenclaw")

    db.session.add(group2)

    group3 = Group(name="Hufflepuff")

    db.session.add(group3)

    group4 = Group(name="Slytherin")

    db.session.add(group4)

    user1.groups.append(group1)
    user1.groups.append(group2)
    user1.groups.append(group3)
    user2.groups.append(group1)
    user2.groups.append(group2)
    user2.groups.append(group3)
    user3.groups.append(group1)
    user3.groups.append(group2)
    user3.groups.append(group3)
    db.session.commit()
def post():
    params = {'name': FieldString(requirement=True)}

    try:
        json_data = parse_req(params)
        # Check valid params
        validate(instance=json_data, schema=schema_group)

        name = json_data.get('name', None)
    except Exception as ex:
        return send_error(message="Parameters error:" + str(ex))

    row = Group.query.filter_by(name=name).first()
    if row is not None:
        return send_error(message='The group name has existed!')

    create_date = get_datetime_now_s()
    _id = str(uuid.uuid1())

    new_group = Group(id=_id, name=name, create_date=create_date)
    try:
        db.session.add(new_group)
        db.session.commit()
    except Exception as ex:
        return send_error(message=str(ex))

    data = {'name': name}

    return send_result(data=data, message="Create the group successfully!")
Esempio n. 3
0
def register():
    # if current_user.is_authenticated:
    #     return redirect(url_for('group', groupname=session['groupname']))
    form = RegistrationForm()
    if form.validate_on_submit():
        user = User(username=form.username.data.lower(),
                    email=form.email.data,
                    usertype=form.usertype.data)
        user.set_password(form.password.data)
        db.session.add(user)
        db.session.commit()

        # auto-generate group when a new elderly user registered
        if form.usertype.data == "elderly":
            group = Group(groupname="Group-" + form.username.data.lower(),
                          elder=form.username.data,
                          admin=form.username.data)
            db.session.add(group)

            # let the registered elderly join his own gorup
            myuser = User.query.filter(
                User.username == form.username.data).first()
            mygroup = Group.query.filter(
                Group.admin == form.username.data).first()
            myuser.join_group(mygroup)
            db.session.commit()

        flash('Welcome new user, please login now!', 'success')
        return redirect(url_for('auth.login'))

    return render_template('register.html', title='Register', form=form)
Esempio n. 4
0
def add_group_form(form):
    """
    Create a new Group table
    :param form:
    :return: if the group can be added, return the id of the group, else return False
    """
    name = form.name.data
    if Group.from_name(name) is not None:
        flash("Ce groupe existe déjà", "danger")
        return False

    is_private = (form.is_private.data == 'private')
    password = form.password.data

    if not password and is_private:
        flash("Vous devez mettre un mot de passe pour un groupe privé",
              "danger")
        return False
    elif len(password) > 10:
        flash("Veuillez rentrer un mot de passe de moins de 10 caractères",
              "warning")
        return False

    db.session.add(
        Group(name=name,
              is_private=is_private,
              password=password,
              manager_id=current_user.id))
    group_id = Group.from_name(name).id
    db.session.add(Participate(group_id=group_id, member_id=current_user.id))
    db.session.commit()
    return group_id
Esempio n. 5
0
def moderation():
    if current_user.role == 'admin':
        groups = Group.query.all()
        admins = User.query.filter_by(role='admin').all()

        current_time = {}

        create_moderator_form = CreateModerForm()
        for group in groups:
            current_time[group.name] = datetime.now() + timedelta(hours=int(group.time_zone)) - timedelta(hours=int(Config.SERVER_TIME_ZONE))

        if create_moderator_form.validate_on_submit():
            if create_moderator_form.submit.data and create_moderator_form.validate():
                for group in create_moderator_form.group.data:
                    gr = Group.query.get(group.id)
                    us = User.query.get(create_moderator_form.user.data.id)
                    gr.moderators.append(us)
                    db.session.commit()
                return redirect(request.referrer)

        create_group_form = CreateGroupForm()
        if create_group_form.validate_on_submit():
            if create_group_form.submit.data and create_group_form.validate():
                group = Group()
                group.name = create_group_form.name.data
                db.session.add(group)
                db.session.commit()
                return redirect(request.referrer)

        return render_template('admin/moderation.html', groups=groups, create_group_form=create_group_form,
                               create_moderator_form=create_moderator_form, current_time=current_time)
    else:
        return redirect(url_for('main.index'))
Esempio n. 6
0
    def create_groups():
        req = request.get_json()
        g_name = req['groupname']
        has = Group.query.filter_by(group_name=g_name).first()
        if has:
            return jsonify({'status': 400})

        group = Group(group_name=g_name, manager_id=current_user.id)
        db.session.add(group)
        db.session.commit()

        g_id = Group.query.filter_by(group_name=g_name).first()
        datas = req['data']
        for data in datas:
            vh = GroupValidHeaders(group_id=g_id.id,
                                   header_name=data['header'],
                                   data_type=data['type'])
            db.session.add(vh)
            db.session.commit()

        db.engine.execute(
            text(
                f"UPDATE `user` SET group_id = {g_id.id} where id={current_user.id}"
            ))
        return jsonify({'status': 200})
Esempio n. 7
0
    def save_similar_groups_into_database(filename='tmp/groups.csv'):
        """
        Saves the group data from a .csv file into the database.
        :param filename: – a string name of .csv file with group information
        """
        with open(filename, 'r') as f:
            reader = csv.reader(f)
            groups = list(reader)

            # An array of groups to save into the database
            group_instances = []

            # Fill the list of groups
            for group in tqdm(groups[1:]):
                name = group[0]
                common = group[1]
                gid = group[2]

                group_instance = Group(gid=gid)
                group_instance.name = name
                group_instance.common_users = common

                group_instances.append(group_instance)

            # Add all into the database
            db.session.add_all(group_instances)
            db.session.commit()
Esempio n. 8
0
 def mutate(self, info, data, id_from_token):
     a_level = GroupAccessEnum(data.access_level)
     role = RoleEnum(data.admin_role)
     new_group = Group(title=data.title,
                       about=data.about,
                       access_level=a_level,
                       date_creation=datetime.utcnow(),
                       date=data.date,
                       admin_id=id_from_token)
     try:
         db.add(new_group)
         commit_with_check(db)
     except:
         db.rollback()
     db.refresh(new_group)
     try:
         db.add(
             GroupUser(group_id=new_group.id,
                       user_id=id_from_token,
                       role_in_group=role))
         commit_with_check(db)
     except:
         db.rollback()
     return AddGroup(ok=True,
                     message="Group has been added!",
                     ID=new_group.id)
Esempio n. 9
0
 def test_user_post_group(self):
     u = User()
     g = Group()
     p = Post()
     u.my_group = g
     p.author = g
     self.assertTrue(p.author.owner[0])
Esempio n. 10
0
 def groups():
     if request.method == "POST":
         name = request.args['name']
         donated = float(request.args['donated'])
         if name:
             group = Group(name=name)
             group.donated = donated
             group.save()
             response = jsonify({
                 'id': group.id,
                 'name': group.name,
                 'donated': group.donated
             })
             response.status_code = 201
         return response
     else:
         groups = Group.get_all()
         ret_list = []
         for group in groups:
             json_elm = {
                 'id': group.id,
                 'name': group.name,
                 'donated': group.donated
             }
             ret_list.append(json_elm)
         response = jsonify(ret_list)
         response.status_code = 200
         return response
Esempio n. 11
0
def add_group():
    if not current_user.is_authenticated or current_user.role != 'admin':
        return redirect(url_for('login'))
    form1 = AddGroup(prefix="form1")
    if form1.validate_on_submit() and form1.submit.data:
        old_group = Group.query.filter(Group.name == form1.name.data).first()
        if old_group is not None:
            flash('Group already exists')
            return redirect(url_for('add_group'))
        group = Group(name=form1.name.data)
        db.session.add(group)
        db.session.commit()
        flash('Group is added')
        return redirect(url_for('add_group'))
    db_group_list = Group.query.all()
    group_list = [(i.group_id, i.name) for i in db_group_list]
    form2 = DeleteGroup(prefix="form2")
    form2.groups.choices = group_list
    if form2.validate_on_submit() or form2.submit.data:
        group = Group.query.filter(Group.group_id == form2.groups.data) \
                           .all()[0]
        for st in group.students:
            us = User.query.filter(User.id == st.std_id).first()
            db.session.delete(us)
        db.session.delete(group)
        db.session.commit()
        flash('Group is deleted')
        return redirect(url_for('add_group'))
    return render_template('add_group.html', form1=form1, form2=form2)
Esempio n. 12
0
 def team_match_storage(self, data):
     for d in data:
         group = Group.query.filter_by(name=d["group_name"]).first()
         if group is None:
             group = Group(name=d["group_name"])
             db.session.add(group)
         v1 = Team.query.filter_by(name=d["v1"]).first()
         if v1 is None:
             v1 = Team(name=d["v1"], group=group)
             v1_pinyin = TeamPinYin(name=pinyin.get(d["v1"],
                                                    format="strip"),
                                    team=v1)
             db.session.add(v1)
             db.session.add(v1_pinyin)
         v2 = Team.query.filter_by(name=d["v2"]).first()
         if v2 is None:
             v2 = Team(name=d["v2"], group=group)
             v2_pinyin = TeamPinYin(name=pinyin.get(d["v2"],
                                                    format="strip"),
                                    team=v2)
             db.session.add(v2)
             db.session.add(v2_pinyin)
         db.session.commit()
         duel = Duel(team_er=v1,
                     team_ed=v2,
                     t1_score=d["vs"][0],
                     t2_score=d["vs"][2],
                     datetime=d["datetime"],
                     area=d["area"],
                     group_cls=d["group_cls"])
         db.session.add(duel)
         db.session.commit()
         print("保存%s小组赛成功..." % d["group_name"])
Esempio n. 13
0
def create_group(user_id):
    print(f"{user_id} making post request to /group")

    post_data = request.get_json()

    group_name = post_data['group_name']

    print(group_name)

    #TODO: there is no need for group to have unique name
    group = Group.query.filter_by(name=group_name).first()
    if group:
        return make_response(
            jsonify({
                "success": False,
                "message": "group already exists. Try a different name"
            })), 409

    # TODO: add the member in a transaction
    group = Group(name=group_name)
    db.session.add(group)
    db.session.commit()

    group = group.query.filter_by(name=group_name).first()

    member = Member(user_id, group.id, False)

    db.session.add(member)
    db.session.commit()

    return make_response(
        jsonify({
            "success": True,
            "message": "group created successfully"
        })), 200
Esempio n. 14
0
 def test_mass_delete(self):
     from app.models import Group
     g1 = Group(name="g1", project_id=self.project1._id)
     g1.save()
     h1 = Host(fqdn="host1", group_id=g1._id)
     h1.save()
     h2 = Host(fqdn="host2", group_id=g1._id)
     h2.save()
     h3 = Host(fqdn="host3", group_id=g1._id)
     h3.save()
     h4 = Host(fqdn="host4", group_id=g1._id)
     h4.save()
     r = self.post_json("/api/v1/hosts/mass_delete",
                        {"host_ids": [str(h2._id), str(h3._id)]})
     self.assertEqual(200, r.status_code)
     data = json.loads(r.data)
     self.assertIn("data", data)
     hosts_data = data["data"]
     self.assertIn("hosts", hosts_data)
     hosts_data = hosts_data["hosts"]
     self.assertIs(list, type(hosts_data))
     self.assertEqual(2, len(hosts_data))
     deleted_hosts = Host.find({"_id": {"$in": [h2._id, h3._id]}})
     self.assertEqual(0, deleted_hosts.count())
     g1 = Group.find_one({"_id": g1._id})
     self.assertItemsEqual([h1._id, h4._id], g1.host_ids)
Esempio n. 15
0
def create_obj():
    first_group = Group(id=0, title="No Group")
    db.session.add(first_group)

    first_edu = Educator(id=0, title="No Educator")
    db.session.add(first_edu)

    db.session.commit()
Esempio n. 16
0
 def setUp(self):
     super().setUp()
     with self.app.app_context():
         role = Role.query.filter_by(name='admin').first()
         user = User.query.filter_by(id=self.std_user.id).first()
         grp = Group(name='tempGroup', roles=[role], users=[user])
         db.session.add(grp)
         db.session.commit()
Esempio n. 17
0
    def test_get_groups(self):
        group = Group(group_name="swvl")
        db.session.add(group)
        db.session.commit()

        response = self.client.get("group")
        data = json.loads(response.data)
        return self.assertEquals(data.get("count"), 1)
Esempio n. 18
0
def get_or_insert_group(platform, group_id, group_name):
    while True:
        group = get_group(group_id, platform)
        if not group:  # 不存在,就新建
            group = Group(platform=platform, group_id=group_id, group_name=group_name)
            db.session.add(group)
            db.session.commit()
        else:
            return group
Esempio n. 19
0
def create_group():
    form = CreateGroupForm()
    if form.validate_on_submit():
        group = Group(name=form.name.data, creator_id=current_user.id)
        db.session.add(group)
        db.session.commit()
        flash('Your group has been created')
        return redirect(url_for('users.all_groups'))
    return render_template('create_group.html', form=form)
Esempio n. 20
0
 def test_add_to_group(self):
     """Tests if users can be added to groups"""
     user = self.create_test_user()
     group = Group(code='1234', active=True)
     db.session.add(group)
     db.session.commit()
     user.add_to_group(group)
     assert group in user.groups_of_student()
     assert user in group.students.all()
Esempio n. 21
0
def new_group():
    """Create a new group."""
    form = NewGroupForm()
    if form.validate_on_submit():
        group = Group(name=form.name.data, users=form.users.data)
        db.session.add(group)
        db.session.commit()
        flash('Group {} successfully created'.format(group.name),
              'form-success')
    return render_template('admin/new_group.html', form=form)
Esempio n. 22
0
def add_group(user, name):
    if Group.query.filter_by(name=name).filter(
            Group.users.any(id=user.id)).first():
        return
    group = Group(name=name)
    set_class_code(group)
    add_user(group, user)
    db.session.add(group)
    db.session.commit()
    return group
Esempio n. 23
0
 def test_2_add_groups(self):
     print('\n------ add groups ----------')
     names = ['math', 'english', 'history']
     groups = []
     for name in names:
         group = Group(name=name)
         groups.append(group)
         db.session.add(group)
     db.session.commit()
     print(Group.query.all())
Esempio n. 24
0
def post():
    form = GroupForm()  # need to create a form
    if form.validate_on_submit():
        new_group = Group()
        new_group.leader_id = request.json["leader_id"]
        form.populate_obj(new_group)
        db.session.add(new_group)
        db.session.commit()
        return new_group.to_dict()
    return "Bad Data"
Esempio n. 25
0
def groups():
    form = GroupForm()
    if form.validate_on_submit():
        group = Group(name=form.name.data)
        db.session.add(group)
        db.session.commit()
        flash('Your group is now live!')
        return redirect(url_for('groups'))
    groups = Group.query.all()
    return render_template('groups.html', groups=groups, form=form)
Esempio n. 26
0
def addGroup(name):
    """Add group to database.
    args:
        name: string
    """
    group = Group()
    group.name = name
    group.members.append(current_user)
    db.session.add(group)
    db.session.commit()
    return group.id
Esempio n. 27
0
    def process_group(self, group_id, count):
        posts = self.get_group_posts(group_id, count)

        duplicate = Group.query.filter_by(item_id=group_id).first()
        if not duplicate:
            group = Group(item_id=group_id)
            db.session.add(group)
            db.session.commit()

        current_group = Group.query.filter_by(item_id=group_id).first()
        for post in posts:
            self.like(post['id'], current_group)
Esempio n. 28
0
def add_group():
    form = AddGroupForm()
    if form.validate_on_submit():
        gid = form.gid.data
        group = Group(gid)
        group.user_id = g.user.id
        db.session.add(group)
        db.session.commit()

        run_watching()

    return redirect(url_for('index'))
Esempio n. 29
0
def createGroup():
    form = GroupForm()

    if form.validate_on_submit():
        group = Group(name=form.name.data)
        current_user.groups.append(group)
        db.session.add(group)
        db.session.commit()
        flash('Congratulations, you have now created a new group!')
        return redirect(url_for('index'))

    return render_template('create_group.html', form=form)
Esempio n. 30
0
def add_group():
    if request.method == 'POST':
        form = request.form
        name = form.get('name')
        group_id = form.get('group_id')
        if group_id:
            group = Group.query.get(group_id)
            if group:
                db.session.delete(group)
                db.session.commit()

        if name:
            if group_id:
                group = Group(group_id=group_id, name=name)
            else:
                group = Group(name=name)
            db.session.add(group)
            db.session.commit()
            return redirect('/group')

    return "of the jedi"