def _add_to_db(self, team, conf, div, override): if not override: if not Team.objects.filter( team_name=team, conference=conf, division=div).exists(): self.g = Team(team_name=team, conference=conf, division=div) self.g.save() else: self.g = Team(team_name=team, conference=conf, division=div) self.g.save()
def setUp(self): self.early_crew = Team(name='Early Crew', description='Build stuff', is_early_crew=True) self.early_crew.save() self.late_crew = Team(name='Late Crew', description='Tear stuff down', is_late_crew=True) self.late_crew.save() super(TestUserProfileChangeAttendingView, self).setUp()
def list_teams(request): action = request.POST.get('action') if action == 'create_team': regex = re.compile('[^a-zA-Z0-9]') name = regex.sub('', request.POST.get('name')) if len(name) > 0: team = Team(name=name, owner=request.user) team.save() teamuser = TeamUser(team=team, user=request.user) teamuser.save() if action == 'delete_team': team_id = request.POST.get('id') if team_id: team = Team.objects.get(id=team_id) if team and team.owner == request.user: team.delete() teams = Team.objects.filter(teamuser__user=request.user) context = { 'teams': teams, } return render(request, 'teams/list.html', context)
def db_init(): # 建立小組 for i in range(5): team = Team() db.session.add(team) db.session.commit() # 建立使用者 for key, value in user_list.items(): user = User(nickname=key, account=key, password=key, team_id=value) db.session.add(user) db.session.commit() # 小隊帳號 for i in range(4): client = User( nickname=team_nickname_list[i], account=team_account_list[i], password=team_password_list[i], team_id=i+1) db.session.add(client) db.session.commit() # 建立 BanCard 資料 for i in range(4): ban_card = BanCard() db.session.add(ban_card) db.session.commit() # 建立 Domain 資料 for i in range(8): domain = Domain() db.session.add(domain) db.session.commit()
def setUp(self) -> None: self.user = User.objects.create_user(username='******', email='*****@*****.**', password='******') self.user_profile = UserProfile() self.user_profile.user = self.user self.user_profile.save() self.team = Team(name='Kitchen', description='Cook stuff') self.team.save()
def post(self, request, **kwargs): """新建团队,同时调用融云接口为该团队创建一个对应的群聊 :param kwargs: name: 团队名称 description: 团队描述 url: 团队链接 province: city: county: fields: 团队领域,格式:'field1|field2' tags: 标签,格式:'tag1|tag2|tag3|...' :return: team_id: 团队id """ name = kwargs.pop('name') fields = kwargs.pop('fields', None) tags = kwargs.pop('tags', None) # 昵称唯一性验证 if Team.enabled.filter(name=name).count() != 0: abort(403, '团队名已被注册') # 昵称非法词验证 if check_bad_words(name): abort(403, '团队名含非法词汇') team = Team(owner=request.user, name=name) team.save() for k in kwargs: setattr(team, k, kwargs[k]) fields = fields.split('|')[:2] if fields is not None else ('', '') team.field1, team.field2 = fields[0].strip(), fields[1].strip() if tags: tags = tags.split('|')[:5] with transaction.atomic(): team.tags.all().delete() order = 0 for tag in tags: tag = tag.strip() if tag: team.tags.create(name=tag, order=order) order += 1 team.save() action.create_team(request.user, team) request.user.score += get_score_stage(2) request.user.score_records.create( score=get_score_stage(2), type="能力", description="成功创建一个团队") request.user.save() return JsonResponse({'team_id': team.id})
def create_team(self, **kwargs): kwargs = merge_args( dict(region=Region.EU, mode=Mode.TEAM_1V1, season=self.season, version=Version.HOTS, league=League.GOLD, member0=self.player, member1=None, member2=None, member3=None, race0=Race.ZERG, race1=Race.UNKNOWN, race2=Race.UNKNOWN, race3=Race.UNKNOWN), **kwargs) self.team = Team(**kwargs) self.team.save() return self.team
def test_details(self): team = Team(name='Test Team', description='This is a test.') team.save() alice = User.objects.create_user('alice', '*****@*****.**', 'passwd') alice.save() bob = User.objects.create_user('bob', '*****@*****.**', 'passwd') bob.save() alice_membership = TeamMembership(team=team, member=alice, is_lead=True) alice_membership.save() bob_membership = TeamMembership(team=team, member=bob) bob_membership.save() self.assertEqual(set(team.members.all()), {alice, bob}) self.assertEqual(list(team.leads), [alice])
def define(): if current_user.permission_lvl < 4: flash('You have no permission to do this action.') return redirect(url_for('req.index')) identifier = request.args.get('id') if identifier: form = RelationshipForm(begin=Team.query.filter_by(id=identifier).first().from_team, end=Team.query.filter_by(id=identifier).first().to_team, team_id=identifier) else: form = RelationshipForm() if form.validate_on_submit(): if not identifier: # This is an add operation to_add = Team(from_team=form.begin.data, to_team=form.end.data) db.session.add(to_add) db.session.commit() flash('Relationship successfully added.') return redirect(url_for('admin.admin')) else: # This is an edit operation to_edit = Team.query.filter_by(id=identifier).first() if to_edit.from_team == form.begin.data and to_edit.to_team == form.end.data: flash('No change was made to the database.') return redirect(url_for('admin.admin')) to_edit.from_team = form.begin.data to_edit.to_team = form.end.data db.session.commit() flash('Relationship successfully edited.') return redirect(url_for('admin.admin')) return render_template('admin/define.html', title='Relationship Manager', form=form)
def form_teams_view(request, spaceurl): member = get_user(request) space = Space.objects.get(url=spaceurl) msg = "" user_preferences = "" if member.username != space.teacher: return redirect('/profile_redirect/') setup_data = "" if request.method == 'POST': group_size_raw = request.POST.get('Group_Options', None) iterative_soulmates_raw = '1' algorithm_index_raw = request.POST.get('optradio', None) alpha_raw = request.POST.get('alpha') alpha_adjusted = float(alpha_raw) * 1000000 alpha_adjusted = int(alpha_adjusted) theta_raw = request.POST.get('theta') theta_adjusted = float(theta_raw) * 100 theta_adjusted = int(theta_adjusted) members = space.member_set.exclude(name='Account in Progress') number_members = members.count() setup_data = str(number_members) + " " + group_size_raw + " " + iterative_soulmates_raw + " " \ + algorithm_index_raw + " " + str(alpha_adjusted) + " " + str(theta_adjusted) # get input in format to store in team model algorithm_index = int(algorithm_index_raw) iterative_soulmates = iterative_soulmates_raw == "1" group_size = int(group_size_raw) # Assigns each member a rank and sets up easy lookup between usernames and rankings rank_to_user_dict = {} user_to_rank_dict = {} random_array = random.sample(range(0, members.count()), members.count()) count = 0 for member in members: rank = random_array[count] rank_to_user_dict[rank] = member.username user_to_rank_dict[member.username] = rank count += 1 # Gets member preferences ready for the java program user_preferences = "" for member in members: member_data = member.username + " " + str( user_to_rank_dict[member.username]) + " " wants_any_team = False if Preferences.objects.filter(member=member, space=space).exists(): finished = False pref_data = "" preferences = Preferences.objects.get(member=member, space=space) preferenceArray = preferences.members_ranking.split(' ') for preference in preferenceArray: if preference == "@myself@": finished = True elif preferences == "@team@": wants_any_team = True if preference in user_to_rank_dict and not finished: pref_data += str(user_to_rank_dict[preference]) + " " if wants_any_team: pref_data = "team " + pref_data else: pref_data = "alone " + pref_data member_data += " " + pref_data else: member_data += "alone " user_preferences += member_data # Runs the team formation algorithms by passing in setup data and preference data to the Java executable p = Popen([ 'java', '-jar', 'JavaCode/TeamFormationAlgorithms.jar', setup_data, user_preferences ], stdout=PIPE, stderr=STDOUT) # Adds teams to the database by parsing the console output of the Java executable master_team = MasterTeam(space=space, iterative_soulmates=iterative_soulmates, number_of_members=group_size, algorithm_index=algorithm_index) master_team.save() space.teams_decided = False space.save() for raw_line in p.stdout: line = raw_line.decode("utf-8") if line[0:2] == 'T:': teammates = line[3:] user_list = teammates.split(" ") team = Team(space=space, master=master_team) team.save() for username in user_list: if Member.objects.filter(username=username).exists(): user = Member.objects.get(username=username) user.teams.add(team) user.save() team.save() if line[0:2] == 'S:': solo_names = line[3:] solo_list = solo_names.split(" ") for username in solo_list: if not username == '': user = Member.objects.get(username=username) team = Team(space=space, master=master_team) team.save() user.teams.add(team) master_team.save() return redirect("/choose_teams/" + space.url + "/") return render( request, "TeamFormation.html", { 'member': member, 'msg': "\"" + setup_data + "\" \"" + user_preferences + "\"" })
def save_teams(self, teams): print('Saving teams found') self.teams = Team.objects.bulk_create([Team(**team) for team in teams])