kumite package

kumite.admin module

class kumite.admin.AbstractKumiteBracketAdmin(model, admin_site)[source]

Bases: django.contrib.admin.options.ModelAdmin

get_form(request, obj=None, **kwargs)[source]

Return a Form class for use in the admin add view. This is used by add_view and change_view.

inlines = [<class 'kumite.admin.KumiteMatchAdmin'>]
list_display = ['division']
media
class kumite.admin.Kumite2PeopleBracketAdmin(model, admin_site)[source]

Bases: kumite.admin.AbstractKumiteBracketAdmin

formfield_for_foreignkey(db_field, request, **kwargs)[source]

Get a form Field for a ForeignKey.

media
model

alias of kumite.models.Kumite2PeopleBracket

class kumite.admin.KumiteBracketListFilter(request, params, model, model_admin)[source]

Bases: django.contrib.admin.filters.SimpleListFilter

lookups(request, model_admin)[source]

Must be overridden to return a list of tuples (value, verbose value)

parameter_name = 'bracket'
queryset(request, queryset)[source]

Return the filtered queryset.

title = 'Bracket'
class kumite.admin.KumiteElim1BracketAdmin(model, admin_site)[source]

Bases: kumite.admin.AbstractKumiteBracketAdmin

media
model

alias of kumite.models.KumiteElim1Bracket

class kumite.admin.KumiteMatchAdmin(model, admin_site)[source]

Bases: django.contrib.admin.options.ModelAdmin

formfield_for_foreignkey(db_field, request, **kwargs)[source]

Get a form Field for a ForeignKey.

get_form(request, obj=None, **kwargs)[source]

Return a Form class for use in the admin add view. This is used by add_view and change_view.

list_display = ('__str__', 'bracket', 'round', 'order', 'aka', 'shiro', 'done', 'aka_won')
list_filter = (<class 'kumite.admin.KumiteBracketListFilter'>,)
media
class kumite.admin.KumiteMatchPersonAdmin(model, admin_site)[source]

Bases: django.contrib.admin.options.ModelAdmin

list_display = ['__str__', 'eventlink', 'match_aka', 'match_shiro', 'points', 'warnings', 'disqualified']
media
class kumite.admin.KumiteRoundRobinBracketAdmin(model, admin_site)[source]

Bases: kumite.admin.AbstractKumiteBracketAdmin

formfield_for_foreignkey(db_field, request, **kwargs)[source]

Get a form Field for a ForeignKey.

media
model

alias of kumite.models.KumiteRoundRobinBracket

kumite.apps module

class kumite.apps.KumiteConfig(app_name, app_module)[source]

Bases: django.apps.config.AppConfig

name = 'kumite'

kumite.forms module

class kumite.forms.KumiteMatchCombinedForm(read_only=False, **kwargs)[source]

Bases: betterforms.multiform.MultiModelForm

__init__(read_only=False, **kwargs)[source]

Initialize self. See help(type(self)) for accurate signature.

clean()[source]

Raises any ValidationErrors required for cross form validation. Should return a dict of cleaned_data objects for any forms whose data should be overridden.

form_classes = {'aka': <class 'kumite.forms.KumiteMatchPersonForm'>, 'match': <class 'kumite.forms.KumiteMatchForm'>, 'shiro': <class 'kumite.forms.KumiteMatchPersonForm'>}
class kumite.forms.KumiteMatchForm(data=None, files=None, auto_id='id_%s', prefix=None, initial=None, error_class=<class 'django.forms.utils.ErrorList'>, label_suffix=None, empty_permitted=False, instance=None, use_required_attribute=None, renderer=None)[source]

Bases: django.forms.models.ModelForm

media
class kumite.forms.KumiteMatchPersonForm(data=None, files=None, auto_id='id_%s', prefix=None, initial=None, error_class=<class 'django.forms.utils.ErrorList'>, label_suffix=None, empty_permitted=False, instance=None, use_required_attribute=None, renderer=None)[source]

Bases: django.forms.models.ModelForm

media
class kumite.forms.KumiteMatchPersonSwapForm(bracket=None, **kwargs)[source]

Bases: django.forms.forms.Form

Form fields:

  • src: Src (ModelChoiceField)

  • tgt: Tgt (ModelChoiceField)

__init__(bracket=None, **kwargs)[source]

Initialize self. See help(type(self)) for accurate signature.

clean()[source]

Hook for doing any extra form-wide cleaning after Field.clean() has been called on every field. Any ValidationError raised by this method will not be associated with a particular field; it will have a special-case association with the field named ‘__all__’.

clean_src()[source]
clean_tgt()[source]
media
prefix = 'swap'

kumite.models module

class kumite.models.Kumite2PeopleBracket(id, division, winner, loser)[source]

Bases: django.db.models.base.Model

Parameters
  • id (AutoField) – Id

  • division (ForeignKey to Division) – Division

  • winner (ForeignKey to EventLink) – Winner

  • loser (ForeignKey to EventLink) – Loser

exception DoesNotExist

Bases: django.core.exceptions.ObjectDoesNotExist

exception MultipleObjectsReturned

Bases: django.core.exceptions.MultipleObjectsReturned

build(people)[source]
division

Model field: division, accesses the Division model.

division_id

Model field: division

get_absolute_url()[source]
get_match(round, match_i)[source]
get_next_match()[source]
get_num_match_in_round(round=None)[source]
get_swappable_match_people()[source]
get_winners()[source]
id

Model field: ID

kumite_match_bracket_field = 'bracket_2people'
kumitematch_set

Model field: bracket 2people, accesses the M2M KumiteMatch model.

loser

Model field: loser, accesses the EventLink model.

loser_id

Model field: loser

match_callback(match)[source]
objects = <django.db.models.manager.Manager object>
rounds = 1
winner

Model field: winner, accesses the EventLink model.

winner_id

Model field: winner

class kumite.models.KumiteElim1Bracket(id, name, rounds, division)[source]

Bases: django.db.models.base.Model

Parameters
  • id (AutoField) – Id

  • name (CharField) – Name

  • rounds (PositiveSmallIntegerField) – Rounds

  • division (ForeignKey to Division) – Division

exception DoesNotExist

Bases: django.core.exceptions.ObjectDoesNotExist

exception MultipleObjectsReturned

Bases: django.core.exceptions.MultipleObjectsReturned

build(people)[source]
claim_people(match)[source]
consolation_match
division

Model field: division, accesses the Division model.

division_id

Model field: division

final_match
get_absolute_url()[source]
get_match(round, match_i)[source]

Returns a match specified by round and match index (order).

If the bracket is incomplete, some matches will not exist. In this case, None is returned.

Args:
round: The round index. 0 is finals, preceeding rounds are

positive numbers.

match_i: The match index. 0 to 2^round-1. The consolation match

is -1 in round 0.

Returns:

The specified match or None.

get_next_match()[source]
get_num_match_in_round(round=None)[source]
get_on_deck_match()[source]
get_seed_order(rounds=None)[source]

Returns order for assigning participants to the initial round.

For example, get_seed_order(2) will return the seed orders for a 2 round bracket (4 competetors) as [0 3 1 2]. This means that the first match is between competetors 0 and 4 and the second match is between competetors 2 and 1.

Args:

rounds (optional): The number of rounds. Defaults to self.rounds.

Returns:

List of orders.

get_swappable_match_people()[source]
get_winners()[source]
id

Model field: ID

kumite_match_bracket_field = 'bracket_elim1'
kumitematch_set

Model field: bracket elim1, accesses the M2M KumiteMatch model.

match_callback(match)[source]
name

Model field: name

objects = <django.db.models.manager.Manager object>
prev_match_aka(match)[source]
prev_match_shiro(match)[source]
rounds

Model field: rounds

class kumite.models.KumiteMatch(id, round, order, bracket_elim1, bracket_rr, bracket_2people, winner_match, consolation_match, aka, shiro, swap, done, aka_won)[source]

Bases: django.db.models.base.Model

Parameters
  • id (AutoField) – Id

  • round (SmallIntegerField) – Round

  • order (SmallIntegerField) – Order

  • bracket_elim1 (ForeignKey to KumiteElim1Bracket) – Bracket elim1

  • bracket_rr (ForeignKey to KumiteRoundRobinBracket) – Bracket rr

  • bracket_2people (ForeignKey to Kumite2PeopleBracket) – Bracket 2people

  • winner_match (ForeignKey to KumiteMatch) – Winner match

  • consolation_match (ForeignKey to KumiteMatch) – Consolation match

  • aka (OneToOneField to KumiteMatchPerson) – Aka

  • shiro (OneToOneField to KumiteMatchPerson) – Shiro

  • swap (BooleanField) – Swap

  • done (BooleanField) – Done

  • aka_won (BooleanField) – Aka won

exception DoesNotExist

Bases: django.core.exceptions.ObjectDoesNotExist

exception MultipleObjectsReturned

Bases: django.core.exceptions.MultipleObjectsReturned

aka

Model field: aka, accesses the KumiteMatchPerson model.

aka_id

Model field: aka

aka_won

Model field: aka won

bracket
bracket_2people

Model field: bracket 2people, accesses the Kumite2PeopleBracket model.

bracket_2people_id

Model field: bracket 2people

bracket_elim1

Model field: bracket elim1, accesses the KumiteElim1Bracket model.

bracket_elim1_id

Model field: bracket elim1

bracket_field
bracket_rr

Model field: bracket rr, accesses the KumiteRoundRobinBracket model.

bracket_rr_id

Model field: bracket rr

consolation_match

Model field: consolation match, accesses the KumiteMatch model.

consolation_match_id

Model field: consolation match

done

Model field: done

get_absolute_url()[source]
get_aka_display()[source]

Autogenerated: Shows the label of the aka

get_display_short_name()[source]
get_shiro_display()[source]

Autogenerated: Shows the label of the shiro

id

Model field: ID

infer_winner()[source]
is_consolation()[source]
is_editable()[source]

Returns true if the match outcome can be changed without invalidating other completed matches.

is_final()[source]
is_ready()[source]

Returns true if the match is ready to be run for the first time.

loser()[source]
objects = <django.db.models.manager.Manager object>
order

Model field: order

people()[source]
prev_matches
round

Model field: round

save(*args, **kwargs)[source]

Save the current instance. Override this in a subclass if you want to control the saving process.

The ‘force_insert’ and ‘force_update’ parameters can be used to insist that the “save” must be an SQL insert or update (or equivalent for non-SQL backends), respectively. Normally, they should not be set.

shiro

Model field: shiro, accesses the KumiteMatchPerson model.

shiro_id

Model field: shiro

swap

Model field: swap

winner()[source]
winner_match

Model field: winner match, accesses the KumiteMatch model.

winner_match_id

Model field: winner match

class kumite.models.KumiteMatchPerson(id, eventlink, points, warnings, disqualified, is_first_match)[source]

Bases: django.db.models.base.Model

Parameters
  • id (AutoField) – Id

  • eventlink (ForeignKey to EventLink) – Eventlink

  • points (PositiveSmallIntegerField) – Points

  • warnings (PositiveSmallIntegerField) – Warnings

  • disqualified (BooleanField) – Disqualified

  • is_first_match (BooleanField) – Is first match

exception DoesNotExist

Bases: django.core.exceptions.ObjectDoesNotExist

exception MultipleObjectsReturned

Bases: django.core.exceptions.MultipleObjectsReturned

disqualified

Model field: disqualified

Model field: eventlink, accesses the EventLink model.

Model field: eventlink

id

Model field: ID

is_aka()[source]
is_first_match

Model field: is first match

is_shiro()[source]
is_swappable()[source]
kumitematch
match_aka

Model field: aka, accesses the KumiteMatch model.

match_shiro

Model field: shiro, accesses the KumiteMatch model.

name
objects = <django.db.models.manager.Manager object>
points

Model field: points

static same_person(p1, p2)[source]
warnings

Model field: warnings

class kumite.models.KumiteRoundRobinBracket(id, division, gold, silver, bronze)[source]

Bases: django.db.models.base.Model

Parameters
  • id (AutoField) – Id

  • division (ForeignKey to Division) – Division

  • gold (ForeignKey to EventLink) – Gold

  • silver (ForeignKey to EventLink) – Silver

  • bronze (ForeignKey to EventLink) – Bronze

exception DoesNotExist

Bases: django.core.exceptions.ObjectDoesNotExist

exception MultipleObjectsReturned

Bases: django.core.exceptions.MultipleObjectsReturned

bronze

Model field: bronze, accesses the EventLink model.

bronze_id

Model field: bronze

build(people)[source]
division

Model field: division, accesses the Division model.

division_id

Model field: division

get_absolute_url()[source]
get_match(round, match_i)[source]
get_next_match()[source]
get_num_match_in_round(round=None)[source]
get_on_deck_match()[source]
get_people()[source]
get_swappable_match_people()[source]
get_winners()[source]
gold

Model field: gold, accesses the EventLink model.

gold_id

Model field: gold

id

Model field: ID

kumite_match_bracket_field = 'bracket_rr'
kumitematch_set

Model field: bracket rr, accesses the M2M KumiteMatch model.

match_callback(match)[source]
objects = <django.db.models.manager.Manager object>
rounds = 1
silver

Model field: silver, accesses the EventLink model.

silver_id

Model field: silver

kumite.models.kumite_match_post_delete(sender, instance, **kwargs)[source]

kumite.test_forms module

class kumite.test_forms.KumiteMatchPersonSwapForm(methodName='runTest')[source]

Bases: django.test.testcases.TestCase

test_run()[source]

kumite.test_models module

class kumite.test_models.Kumite2PeopleBracketTestCase(methodName='runTest')[source]

Bases: django.test.testcases.TestCase

test_disqualified()[source]
test_run()[source]
class kumite.test_models.KumiteElim1BracketTestCase(methodName='runTest')[source]

Bases: django.test.testcases.TestCase

setUp()[source]

Hook method for setting up the test fixture before exercising it.

test_build()[source]

Try building brackets of different sizes and make sure people are assigned correctly.

test_get_match()[source]
test_get_seed_order()[source]
test_swap()[source]
class kumite.test_models.KumiteMatchPersonTestCase(methodName='runTest')[source]

Bases: django.test.testcases.TestCase

setUp()[source]

Hook method for setting up the test fixture before exercising it.

test_matchperson()[source]
class kumite.test_models.KumiteMatchTestCase(methodName='runTest')[source]

Bases: django.test.testcases.TestCase

setUp()[source]

Hook method for setting up the test fixture before exercising it.

test_claim()[source]
test_cleanup()[source]

Test linked KumiteMatchPersons are deleted automatically.

test_winner_loser()[source]
class kumite.test_models.KumiteRoundRobinBracketTestCase(methodName='runTest')[source]

Bases: django.test.testcases.TestCase

test_disqualified_aka()[source]
test_run()[source]
kumite.test_models.make_bracket(n)[source]
kumite.test_models.match_person_gen(n=None)[source]

Iterator that will return a new KumiteMatchPerson each time called

Args:

n (optional): Number of people to return.

Yields:

KumiteMatchPerson: People named “a”, “b”, etc..

kumite.test_views module

class kumite.test_views.MatchViewTestCase_0(methodName='runTest')

Bases: kumite.test_views.MatchViewTestCase

browser = <common.selenium.Env.cases.<locals>.Browser object>
test_manual_match()
class kumite.test_views.MatchViewTestCase_1(methodName='runTest')

Bases: kumite.test_views.MatchViewTestCase

browser = <common.selenium.Env.cases.<locals>.Browser object>
test_manual_match()
class kumite.test_views.SlaveTestCase_0(methodName='runTest')

Bases: kumite.test_views.SlaveTestCase

Tests kumite slave display

Safari Webdriver does not allow communication between windows so can’t test.

browser = <common.selenium.Env.cases.<locals>.Browser object>
do_new_slave()

Tests a slave being opened after the kumite match has started.

do_slave_bracket()

Tests slave functionality for bracket matches.

In addition to the tests from slave_helper, also tests swap functionality.

do_slave_manual()

Tests slave functionality for manual matches.

slave_helper(url)

Common tests between test_slave_manual() and test_slave_automatic.

Tests the scores, warnings, time, and DQ work correctly on a manual match.

Args:

url: None to test manual kumite, a url to test a bracket match.

Returns:

(master_window, slave_window, iframe) selenium references.

test_run()

Run the test cases in the class under a single function to reuse the Webdriver.

class kumite.test_views.TestSwap(methodName='runTest')[source]

Bases: django_webtest.WebTest

setUp()[source]

Hook method for setting up the test fixture before exercising it.

test_swap()[source]

kumite.tests module

kumite.urls module

kumite.views module

class kumite.views.Bracket2PeopleDelete(**kwargs)[source]

Bases: django.contrib.auth.mixins.PermissionRequiredMixin, django.views.generic.edit.DeleteView

get_success_url()[source]
model

alias of kumite.models.Kumite2PeopleBracket

permission_required = 'accounts.admin'
class kumite.views.Bracket2PeopleDetails(**kwargs)[source]

Bases: django.contrib.auth.mixins.PermissionRequiredMixin, django.views.generic.detail.DetailView

get_context_data(object)[source]

Insert the single object into the context dict.

get_context_object_name(object)[source]

Get the name to use for the object.

model

alias of kumite.models.Kumite2PeopleBracket

permission_required = 'accounts.view'
template_name = 'kumite/kumiteelim1bracket_detail.html'
class kumite.views.BracketDelete(**kwargs)[source]

Bases: django.contrib.auth.mixins.PermissionRequiredMixin, django.views.generic.edit.DeleteView

get_success_url()[source]
model

alias of kumite.models.KumiteElim1Bracket

permission_required = 'accounts.admin'
class kumite.views.BracketDetails(**kwargs)[source]

Bases: django.contrib.auth.mixins.PermissionRequiredMixin, django.views.generic.detail.DetailView

get_context_data(**kwargs)[source]

Insert the single object into the context dict.

get_context_object_name(object)[source]

Get the name to use for the object.

model

alias of kumite.models.KumiteElim1Bracket

permission_required = 'accounts.view'
class kumite.views.BracketGrid(bracket, consolation=False)[source]

Bases: object

__init__(bracket, consolation=False)[source]

Initialize self. See help(type(self)) for accurate signature.

get_match(round, match_i)[source]
headers()[source]
row(row)[source]
rows()[source]
class kumite.views.BracketRoundRobinDelete(**kwargs)[source]

Bases: django.contrib.auth.mixins.PermissionRequiredMixin, django.views.generic.edit.DeleteView

get_success_url()[source]
model

alias of kumite.models.KumiteRoundRobinBracket

permission_required = 'accounts.admin'
class kumite.views.BracketRoundRobinDetails(**kwargs)[source]

Bases: django.contrib.auth.mixins.PermissionRequiredMixin, django.views.generic.detail.DetailView

get_context_data(object)[source]

Insert the single object into the context dict.

get_context_object_name(object)[source]

Get the name to use for the object.

model

alias of kumite.models.KumiteRoundRobinBracket

permission_required = 'accounts.view'
template_name = 'kumite/kumiteelim1bracket_detail.html'
class kumite.views.KumiteMatchManual(**kwargs)[source]

Bases: django.views.generic.edit.FormView

form_class

alias of kumite.forms.KumiteMatchCombinedForm

get_context_data(**kwargs)[source]

Insert the form into the context dict.

get_form_kwargs()[source]

Return the keyword arguments for instantiating the form.

mocel

alias of kumite.models.KumiteMatch

template_name = 'kumite/kumitematch_form.html'
class kumite.views.KumiteMatchPersonSwapView(**kwargs)[source]

Bases: kumite.views.BracketDetails, django.views.generic.edit.FormView

dispatch(request, *args, **kwargs)
form_class

alias of kumite.forms.KumiteMatchPersonSwapForm

form_valid(form)[source]

If the form is valid, redirect to the supplied URL.

get_context_data(form=None)[source]

Insert the single object into the context dict.

get_form_kwargs()[source]

Return the keyword arguments for instantiating the form.

get_success_url()[source]

Return the URL to redirect to after processing a valid form.

permission_required = 'accounts.edit'
post(request, *args, **kwargs)[source]

Handle POST requests: instantiate a form instance with the passed POST variables and then check if it’s valid.

class kumite.views.KumiteMatchUpdate[source]

Bases: django.contrib.auth.mixins.PermissionRequiredMixin, django.views.generic.edit.UpdateView

__init__()[source]

Initialize self. See help(type(self)) for accurate signature.

dispatch(*args, **kwargs)[source]
form_class

alias of kumite.forms.KumiteMatchCombinedForm

form_valid(form)[source]

If the form is valid, save the associated model.

get_context_data(**kwargs)[source]

Insert the form into the context dict.

get_form_kwargs()[source]

Return the keyword arguments for instantiating the form.

get_success_url()[source]

Return the URL to redirect to after processing a valid form.

model

alias of kumite.models.KumiteMatch

permission_required = 'accounts.edit'

Module contents