Skip to content

Commit a7e9b97

Browse files
committed
Merge branch 'release/2.5.0'
2 parents 88036c6 + b32d139 commit a7e9b97

File tree

1,182 files changed

+74014
-22953
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

1,182 files changed

+74014
-22953
lines changed

.eslintrc renamed to .eslintrc.js

+8-4
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
{
1+
module.exports = {
22
"root": true,
33
"env": {
44
"node": true,
@@ -7,17 +7,21 @@
77
},
88
"extends": [
99
"plugin:vue/essential",
10-
"standard"
10+
// "plugin:vue/recommended" // TODO
11+
"@vue/standard"
1112
],
1213
"rules": {
13-
"comma-dangle": ["error", "always-multiline"], // Improve diffs
14+
"comma-dangle": [
15+
"error", "always-multiline"
16+
], // Improve diffs
1417
"func-names": "off", // Conflicts with vue
1518
"object-shorthand": "off", // Conflicts with vue
1619
"no-underscore-dangle": "off", // Conflicts with vue
1720
// Vue-plugin lint rules
1821
"vue/require-v-for-key": "off", // Requires not using <template>; breaks layouts
1922
// Temporary; to fix
20-
"no-console": "off",
23+
"no-console": process.env.NODE_ENV === 'production' ? 'warn' : 'off',
24+
"no-debugger": process.env.NODE_ENV === 'production' ? 'warn' : 'off',
2125
"radix": "off",
2226
},
2327
"parserOptions": {

.github/CHANGELOG.rst

+42-2
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,38 @@
22
Change Log
33
==========
44

5+
2.5.0 (Nebelung)
6+
----------------
7+
*Release date: 30 November 2020*
8+
9+
- Added a preference to allow dedicated reply speaker. Thanks to Miha Frangež for the PR! (`#1584 <https://github.com/TabbycatDebate/tabbycat/issues/1584>`_)
10+
- Private URL submissions now store the participant whose link was used rather than just their IP address (`#1586 <https://github.com/TabbycatDebate/tabbycat/issues/1586>`_)
11+
- Added selectors for adjudicator positions in draw emails (`#1423 <https://github.com/TabbycatDebate/tabbycat/pull/1423>`_)
12+
- Implemented debate postponement, allowing debates to be marked as "postponed" in the results page. Postponed debates do not block draw generation, contrary to unconfirmed debates. (`#1563 <https://github.com/TabbycatDebate/tabbycat/pull/1563>`_)
13+
- Added round weights so that team points can be pondered between rounds, implementing tapered scoring. Weights only affect the sum of team points. (`#1512 <https://github.com/TabbycatDebate/tabbycat/pull/1512>`_)
14+
- Optimisations to the database
15+
- Adjudicator Feedback choices and draw flags are stored with PostgreSQL-specific arrays (`#1525 <https://github.com/TabbycatDebate/tabbycat/issues/1525>`_)
16+
- Optimised database queries to create all debates in a draw at once (`#1376 <https://github.com/TabbycatDebate/tabbycat/pull/1376>`_)
17+
- Optimised deletion of team private URLs (`#1618 <https://github.com/TabbycatDebate/tabbycat/pull/1618>`_)
18+
- Reduced number of database queries in sending notifications (`#1592 <https://github.com/TabbycatDebate/tabbycat/pull/1592>`_)
19+
- Delegated the calculation of team and speaker rankings to database functions where available, with metrics using the same query. (`#1617 <https://github.com/TabbycatDebate/tabbycat/pull/1617>`_)
20+
- Improvements to the API, including
21+
- Added URL field from the Room model to the Venues API endpoints as 'external URL'
22+
- The Institution API endpoints show institutions' regions as their name, and regions can be created
23+
- Breaks are now explorable and manipulable through the API.
24+
- Overhauled the results framework to allow for more types of ballots
25+
- BP finals now nominate only one team winning (`#527 <https://github.com/TabbycatDebate/tabbycat/issues/527>`_)
26+
- There are now settings to allow tied-point and low-point wins, with declared winners (`#643 <https://github.com/TabbycatDebate/tabbycat/issues/643>`_)
27+
- Two-team formats can now have scoreless ballots, and winner ballots are not restricted to elimination rounds (`#1003 <https://github.com/TabbycatDebate/tabbycat/issues/1003>`_)
28+
- Results are now discoverable through the API.
29+
- Added new translations and features to help translators
30+
- Thanks to Pascal Alfadian for his work on an Indonesian translation!
31+
- Added in-context translation through Crowdin enabling translations to be made directly on Tabbycat (`#1664 <https://github.com/TabbycatDebate/tabbycat/pull/1664>`_)
32+
- Removed the simulated annealing adjudicator allocator. (`#1619 <https://github.com/TabbycatDebate/tabbycat/pull/1619>`_)
33+
- Fixed issue with Sentry integration preventing some debugging info from being included in error reports
34+
- Improved handling of multiple current rounds in record pages, and prevented data leakage
35+
36+
537
2.4.7
638
-----
739
*Release date: 15 October 2020*
@@ -10,6 +42,7 @@ Change Log
1042
- Record pages now show concurrent rounds
1143
- Non-public speaker categories are now hidden from public API endpoints when unauthenticated
1244

45+
1346
2.4.6
1447
-----
1548
*Release date: 19 September 2020*
@@ -18,6 +51,7 @@ Change Log
1851
- Fixed issue that made saving motions impossible through the Round API detail endpoint
1952
- Fixed issue that made filtering by source team impossible for the Feedback API
2053

54+
2155
2.4.5
2256
-----
2357
*Release date: 19 July 2020*
@@ -28,24 +62,27 @@ Change Log
2862
- Improved sorting of feedback table when sorting 'difference between base score and current score' (thanks Zachary for the report)
2963
- Fixed issue where the last saved counter was not updating on normal tables
3064

65+
3166
2.4.4
3267
-----
3368
*Release date: 13 July 2020*
3469

3570
- Fixed colours associated with adjudicators' scores not showing
3671
- Showed validation errors when using API with invalid field names
37-
- Prevented Tabbycat from creating default conflicts with the API if already specififed in the request
38-
- Fixed eligibilty API endpoints when a list of participants is not present
72+
- Prevented Tabbycat from creating default conflicts with the API if already specified in the request
73+
- Fixed eligibility API endpoints when a list of participants is not present
3974
- Fixed speaker category eligibility API endpoint not accepting speakers
4075
- Allowed updating teams, excluding speakers, through the team detail API endpoint
4176
- Added date and time formats for Malay
4277

78+
4379
2.4.3
4480
-----
4581
*Release date: 4 July 2020*
4682

4783
- Fixed issue preventing break eligibility from saving (`#1521 <https://github.com/TabbycatDebate/tabbycat/issues/1521>`_)
4884

85+
4986
2.4.2
5087
-----
5188
*Release date: 22 June 2020*
@@ -54,6 +91,7 @@ Change Log
5491
- Fixed participant record page crashes resulting from `#1511 <https://github.com/TabbycatDebate/tabbycat/pull/1511>`_ (`#1518 <https://github.com/TabbycatDebate/tabbycat/pull/1518>`_)
5592
- Fixed hanging in preformed panel creation
5693

94+
5795
2.4.1
5896
-----
5997
*Release date: 21 June 2020*
@@ -70,6 +108,7 @@ Change Log
70108
- Fixed issue preventing the creation of speakers in teams through API
71109
- Little updates and clarifications to the documentation
72110

111+
73112
2.4.0 (Manx)
74113
------------
75114
*Release date: 14 June 2020*
@@ -101,6 +140,7 @@ Change Log
101140
- Fixed issue causing even panels to be missed for user warnings (`#1465 <https://github.com/TabbycatDebate/tabbycat/issues/1465>`_)
102141
- Stopped actively maintaining `local installation instructions for Windows <https://tabbycat.readthedocs.io/en/latest/install/windows.html>`_
103142

143+
104144
2.3.3
105145
-----
106146
*Release date: 26 April 2020*

.github/CONTRIBUTING.rst

+3-3
Original file line numberDiff line numberDiff line change
@@ -74,7 +74,7 @@ Style guide
7474

7575
For the front end interface design there is a style guide available at "/style/" once a tournament has been setup.
7676

77-
For python code, we use `flake8 <http://flake8.readthedocs.io>`_ to check for a non-strict series of style rules. Warnings will trigger a Travis CI build to fail. The entire codebase can be checked by using::
77+
For python code, we use `flake8 <http://flake8.readthedocs.io>`_ to check for a non-strict series of style rules. Warnings will trigger a CI build to fail. The entire codebase can be checked by using::
7878

7979
$ pre-commit run flake8 --all-files
8080

@@ -157,7 +157,7 @@ Release checklist
157157

158158
1. Check that all migrations have been generated and committed into Git
159159
2. Merge translations from the Crowdin pull request and compile messages
160-
3. Bump version number in ``docs/conf.py``
160+
3. Bump version number in ``docs/conf.py`` and ``docs/api-schema.yml`` (if applicable)
161161
4. Bump version number and (if applicable) codename in ``tabbycat/settings/core.py``
162162
5. Update the main ``CHANGELOG.rst`` file (including release date)
163163
6. Check the major current deployment options, including:
@@ -166,7 +166,7 @@ Release checklist
166166
3. Docker (macOS, Windows 10*) and Docker Toolbox (Windows 10 Home) methods
167167
4. Using Bash and Powershell on Windows
168168
5. Using Terminal on macOS (at least test out a fresh install of the npm/pip dependencies)
169-
7. Check that the last Travis CI build passed and run the full local test suite (this will include the Selenium tests that are not on Travis)
169+
7. Check that the last Github Actions build passed and run the full local test suite (this will include the Selenium tests that are not on Travis)
170170
8. Shift remaining issues from the Github Milestone
171171
9. Create and finish the release branch as per git-flow
172172
10. Ensure the tag is correct (``vX.Y.Z``) and published to GitHub

.github/README.md

+6-9
Original file line numberDiff line numberDiff line change
@@ -7,14 +7,13 @@
77
[![Release](https://img.shields.io/github/release/tabbycatdebate/tabbycat.svg)](https://github.com/tabbycatdebate/tabbycat/releases)
88
[![Crowdin](https://badges.crowdin.net/tabbycat/localized.svg)](https://crowdin.com/project/tabbycat)
99
[![Docs](https://readthedocs.org/projects/tabbycat/badge/)](http://tabbycat.readthedocs.io/en/stable/)
10-
[![Build Status](https://travis-ci.org/TabbycatDebate/tabbycat.svg?branch=develop)](https://travis-ci.org/TabbycatDebate/tabbycat)
11-
[![Build status](https://ci.appveyor.com/api/projects/status/hcht4g5x2m5urr8y/branch/develop?svg=true)](https://ci.appveyor.com/project/philipbelesky/tabbycat-81705/branch/develop)
10+
![Build Status](https://github.com/TabbycatDebate/tabbycat/workflows/Django%20CI/badge.svg)
1211
[![Maintainability](https://api.codeclimate.com/v1/badges/33dc219dfb957ad658c2/maintainability)](https://codeclimate.com/github/TabbycatDebate/tabbycat/maintainability)
1312
[![Test Coverage](https://api.codeclimate.com/v1/badges/33dc219dfb957ad658c2/test_coverage)](https://codeclimate.com/github/TabbycatDebate/tabbycat/test_coverage)
1413

1514
</div>
1615

17-
Tabbycat is a draw tabulation system for British Parliamentary and a variety of two-team formats. It was used at Australs in 2010, and 2012-2018 as well as at EUDC 2018 and many other tournaments of all sizes and formats. To see an example of a post-tournament website, have a look at the [Australs 2018 tab website](https://australs2018.herokuapp.com).
16+
Tabbycat is a draw tabulation system for British Parliamentary and a variety of two-team formats. It was used at Australs 2010 and 2012–2019, EUDC 2018, WUDC 2019–2020 and many other tournaments of all sizes and formats. To see an example of a post-tournament website, have a look at the [WUDC 2020 tab website](https://wudc2020.herokuapp.com).
1817

1918
**Want to try it out?** The best way to trial Tabbycat is just to launch a new site, as described [in our user guide](https://tabbycat.readthedocs.io/en/stable/install/heroku.html) (or [below](#installation-and-user-guide)). It takes just a few clicks, costs nothing, requires no technical background, and you can always deploy a fresh copy when you're ready to run your tournament.
2019

@@ -34,15 +33,13 @@ Our user guide is at [tabbycat.readthedocs.io](http://tabbycat.readthedocs.io/).
3433

3534
## ⬆️ Installation
3635

37-
The fastest way to launch a Tabbycat site is to click this button:
36+
Tabbycat can be deployed in a number of ways. While you can set it up to [run on your own computer](https://tabbycat.readthedocs.io/en/stable/install/local.html) most users will want to run it as a website.
3837

39-
[![Deploy](https://www.herokucdn.com/deploy/button.svg)](https://heroku.com/deploy?template=https://github.com/TabbycatDebate/tabbycat/tree/master)
40-
41-
During the installation process Heroku will ask you to verify your account by adding a credit or debit card. A standard Tabbycat site *will not charge* your card without explicit permission — charges only accrue if you deliberately add a paid service in the Heroku dashboard.
38+
Tabbycat is configured for a '1 click' install to the [Heroku](https://www.heroku.com) web platform. Click this button to begin:
4239

43-
That said if you do not have access to a credit or debit card we offer a version of the software — 'Tabbykitten' — that does not require Heroku to verify your account. However, as a result, this version is limited: it cannot send emails and cannot be upgraded with extra database capacity or to better handle large amounts of traffic (although you can perform these upgrades later if you verify your Heroku account). We recommend using it only for small tournaments. [Use this link to set up a Tabbykitten version](https://heroku.com/deploy?template=https://github.com/TabbycatDebate/tabbycat/tree/kitten).
40+
[![Deploy](https://www.herokucdn.com/deploy/button.svg)](https://heroku.com/deploy?template=https://github.com/TabbycatDebate/tabbycat/tree/master)
4441

45-
Our documentation also provides guides for how to run Tabbycat on your local machine.
42+
While the baseline Heroku hosting is free, some features require additional setup and larger tournaments will likely need to pay for greater hosting capacities. As an alternative, the [Calico](https://calicotab.com/) service will host Tabbycat sites for a flat fee while also managing all scaling/configuration concerns and providing ongoing access to the released tab.
4643

4744
## 💪 Support and Contributing
4845

.github/workflows/django.yml

+83
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,83 @@
1+
name: Django CI
2+
3+
on:
4+
push:
5+
branches: [ '**' ]
6+
pull_request:
7+
branches: [ '**' ]
8+
9+
jobs:
10+
build-ubuntu:
11+
12+
runs-on: ubuntu-latest
13+
strategy:
14+
max-parallel: 4
15+
matrix:
16+
python-version: [3.7, 3.8, 3.9]
17+
node-version: [12.x]
18+
19+
services:
20+
postgres:
21+
image: postgres:11
22+
env:
23+
POSTGRES_USER: postgres
24+
POSTGRES_PASSWORD: postgres
25+
POSTGRES_DB: postgres
26+
ports: ['5432:5432']
27+
options: --health-cmd pg_isready --health-interval 10s --health-timeout 5s --health-retries 5
28+
29+
steps:
30+
- uses: actions/checkout@v2
31+
- name: Cache node modules
32+
uses: actions/cache@v2
33+
env:
34+
cache-name: cache-node-modules
35+
with:
36+
# npm cache files are stored in `~/.npm` on Linux/macOS
37+
path: ~/.npm
38+
key: ${{ runner.os }}-build-${{ env.cache-name }}-${{ hashFiles('**/package-lock.json') }}
39+
restore-keys: |
40+
${{ runner.os }}-build-${{ env.cache-name }}-
41+
${{ runner.os }}-build-
42+
${{ runner.os }}-
43+
- name: Cache pip modules
44+
uses: actions/cache@v2
45+
with:
46+
path: ~/.cache/pip
47+
key: ${{ runner.os }}-pip-${{ hashFiles('**/requirements.txt') }}
48+
restore-keys: |
49+
${{ runner.os }}-pip-
50+
- name: Set up Python ${{ matrix.python-version }}
51+
uses: actions/setup-python@v2
52+
with:
53+
python-version: ${{ matrix.python-version }}
54+
- name: Use Node.js ${{ matrix.node-version }}
55+
uses: actions/setup-node@v1
56+
with:
57+
node-version: ${{ matrix.node-version }}
58+
- name: Install Dependencies
59+
run: |
60+
python -m pip install --upgrade pip
61+
pip install -r ./config/requirements_development.txt
62+
npm ci
63+
- name: Run Linting
64+
run: npm run lint
65+
- name: Run Build and Collect
66+
run: |
67+
npm run build
68+
python ./tabbycat/manage.py collectstatic --noinput -v 0
69+
- name: Run Migrations
70+
run: python ./tabbycat/manage.py migrate
71+
- name: Run Tests
72+
run: python tabbycat/manage.py test -v 2 --exclude-tag=selenium
73+
74+
build-docker:
75+
76+
runs-on: ubuntu-latest
77+
78+
steps:
79+
- uses: actions/checkout@v2
80+
with:
81+
fetch-depth: 1
82+
- name: Build Docker image
83+
run: docker-compose build

.nvmrc

+1-1
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
8.11.3
1+
12.18.1

.pre-commit-config.yaml

+26
Original file line numberDiff line numberDiff line change
@@ -22,3 +22,29 @@ repos:
2222
- pep8-naming
2323
- flake8-commas
2424
exclude: migrations/
25+
- repo: https://github.com/awebdeveloper/pre-commit-stylelint
26+
rev: '0.0.2' # Use the sha or tag you want to point at like 0.0.1
27+
hooks:
28+
- id: stylelint
29+
files: '\.scss' # Only lint sass; not static assets
30+
types: [file]
31+
additional_dependencies:
32+
33+
34+
35+
- repo: https://github.com/pre-commit/mirrors-eslint
36+
rev: 'v7.3.1' # Use the sha / tag you want to point at
37+
hooks:
38+
- id: eslint
39+
files: '\.vue'
40+
types: [file]
41+
additional_dependencies:
42+
43+
44+
45+
46+
47+
48+
49+
50+

.python-version

+1-1
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
3.6.8
1+
3.8.3

0 commit comments

Comments
 (0)