Commit graph

60 commits

Author SHA1 Message Date
Joel Addison
37a02c1704 Update review pages
Show the same options for reviews on the dashboard and on review screens.
Add title to all pages within the review section.
2019-10-14 21:26:49 +10:00
Joel Addison
94f8837288 Allow admin to manage own proposals
Do not block admins from changing votes, result or messaging
on their own proposals.
2019-10-02 23:27:51 +10:00
Joel Addison
87ecc83314 Improve proposal reviews
Display talk format or proposal kind on review tables and in CSV.
Add suggested status to CSV output, for auto-accept and auto-reject.
Add endpoint to download CSV of proposals for section.
2019-08-29 22:05:00 +10:00
Joel Addison
41f6d067dd Add assistance details field to speaker
Add multiline text field to gather details on travel and accommodation
assistance to help with speaker acceptance planning.
2019-06-24 21:59:47 +10:00
Tobias
cd77380eac Add hidden flag to raffle 2019-01-22 08:16:38 +13:00
Tobias
adcfa45967 Modify json API for Carl 2019-01-16 13:55:05 +13:00
Tobias
590b25d5f8 Actually fix slot ordering 2019-01-12 13:12:21 +13:00
Tobias
77bc4e42b1 Fix sort order for slots 2019-01-12 12:20:39 +13:00
Tobias
494b8ffb17 Fix slot naming if re-using talk types 2019-01-04 12:45:51 +13:00
Tobias
ac71aa170b Fix overly verbose slot names 2018-12-29 14:38:16 +13:00
Tobias
2cce659c28 Use miniconf schedule based on sections 2018-12-29 13:36:13 +13:00
Tobias
9c64a33fd2 Refactor timeteabel to speed up dashboard 2018-12-08 19:25:14 +13:00
Tobias
e6da164193 Add additional speakers into schedule upload 2018-10-06 10:54:13 +13:00
Tobias
97d55b8876 Use sensible date format in symposion schedule upload 2018-09-29 17:14:21 +12:00
Tobias S
8cdda4242a Add childcare question into accessibility box 2018-07-12 00:11:55 +00:00
James Polley
567b88f240 Add a migration for changes to speaker form 2018-07-01 13:52:25 +10:00
William Hughes
128148ba20 Fix absolute URLs, 'Sydney' on the speaker create form
Fix !87
2018-06-30 11:41:37 +12:00
Tobias Schulmann
8c28ca0f79 Fixed proposal views in dashboard 2018-06-30 10:56:52 +12:00
James Polley
227df66dba Allow non-managers to submit review feedback 2018-06-27 19:13:00 +10:00
Joel Addison
135c5d2da3 Add track to schedule JSON
Include the track of the slow in the schedule JSON so the miniconf can be identified.
2018-01-18 21:40:14 +11:00
James Polley
18fc3bd4a7 Fix typo in list_filter 2018-01-15 06:36:05 +11:00
James Polley
8da6d18098 Enhance session admin to show room names 2018-01-15 03:42:01 +11:00
James Polley
98e0abf30c Use filter_vertical for sessions in admin 2018-01-10 22:27:55 +11:00
James Polley
f99765ca0b Add admin action to update slot names
* The slot object updates its name every time it is saved
* But sometimes its slotrooms are changed underneath it, and so the
  name can become out of date
* This method is a simple way of updating the names for all the slots
2018-01-10 22:27:55 +11:00
James Polley
23f4a38126 Add filter on room to Slot admin 2018-01-10 15:58:36 +11:00
James Polley
25bff81eab Revert "Fix off-by-one error in rowspan calcuations"
This reverts commit 96a24489b6.
2017-12-25 21:44:31 +11:00
James Polley
96a24489b6 Fix off-by-one error in rowspan calcuations 2017-12-24 19:20:14 +11:00
James Polley
b833b7d869 Order slots by room order first
* lca2018 has a situation where we have multiple slots starting at the
  same time, but ending at different times
* The headers of the timetable grid are sorted by room sort order
* In sqlite at least, ordering by start,order seems to implicitly
  resolve duplicate start times by looking at the other sort fields
  first, and will only sort on order if all other fields are identical

* This results in the slot that ends first going in column 1, which
  gets out of sync with the room listed in the header

* I can't figure out how to solve this in the database, so...

* Force the slots to be sorted by room order.
* Then, for each start_time, select out slots starting at that time
  and operate on them
* This both gets the slots in the right order *and* keeps multi-room
  slots with the right colspan. Yay!

* It's possible that this wouldn't be needed on some DBs which might
do the sorting differently.
2017-12-24 19:20:04 +11:00
James Polley
193ffc76d5 List rooms in slot admin
In many parts of the schedule there are multiple slots with the same
start/end times, and it can be hard to find the one you want to edit.

Make this slightly simpler by listing the room names in the admin list.
2017-12-24 13:54:57 +11:00
James Polley
a880bc27fb Enhance track admin 2017-12-03 18:11:39 +11:00
James Polley
3239bbe29a Don't duplicate existing rooms when importing schedule CSV
* Old implementation needs to see exactly the same rooms in exactly
  the same order every time it loads new data, otherwise it will
  create a duplicate entry for the room that differs only in display
  order.
* New implementation ignores the display order when checking to see
  if the room already exists.
2017-12-03 16:15:19 +11:00
James Polley
6bf3d71bff Require login for proposal submit
- This has the effect of bouncing people to the login page if they're
  unauthenticated, rather than returning a 502 because 'home' doesn't
  exist.

- If they're authenticated but don't have a speaker profile, send them
  to the speaker profile create page rather than just to the
  dashboard.

Closes #26
2017-10-16 15:07:36 +11:00
James Polley
1eb28f2c80 Enhance Schedule list display 2017-10-15 15:58:43 +10:00
James Polley
fab25ad0f5 Room needs dunder-str as well as dunder-unicode 2017-10-15 15:33:56 +10:00
James Polley
e48c8c171a Display (editably) the exclusvity of the slot in the admin
(Also add filtering so that we can easily find eg all plenaries which
are not yet flagged as exclusive)
2017-10-15 15:14:55 +10:00
James Polley
6b17e021ca Add a __unicode__ method to the Room model
Closes #25
2017-10-15 15:07:56 +10:00
James Polley
b154d90eed Wrap input CSV in an TextIOWrapper
Closes #24
2017-10-15 14:59:57 +10:00
James Polley
cd4c640c1b Allow filter of team memberships by state 2017-10-14 14:31:57 +11:00
James Polley
9bf90b411e Enhance admin interface for result notifications 2017-10-13 13:02:44 +11:00
James Polley
ba98c36868 Add admin links to review sections that the user can manager 2017-09-22 22:46:21 +10:00
James Polley
d22f8e8e35 expand proposal admin 2017-09-22 20:13:48 +10:00
James Polley
183dea0b6e Python3 compatibility in timetable listing
itertools changed a little between py2 and py3
2017-09-17 22:08:39 +10:00
James Polley
494d9a6add Merge speaker migrations
Two different changes have updated the speaker model; this creates a
migration that merges the changes.
2017-09-17 13:16:06 +10:00
James Polley
ecd4bc97bc Expand bulk_accept to generic bulk_update
Allows for bulk rejection/undecided/standby in addition to bulk accept.
2017-09-17 13:15:56 +10:00
James Polley
f4d6fd1db4 Merge branch 'tabindex-for-hack' into 'master'
Don't tab stop on Hack links in proposal creation

See merge request LCA2018/symposion_app!13
2017-09-16 12:23:14 +00:00
James Polley
5114076afa Make review changes atomic
This follows from investigations in
https://rt.lca2018.org/Ticket/Display.html?id=283&results=eac0bd3c49f782d054f87d6b160ca36b;
in short, it seems that because this very long and complex method
creates several different objects at differnt times, the DB has been
getting out of sync; there are more votes recorded then there are
reviews, becuase the table that stores the vote count is updated
before the table that stores the vote and review information

This change is intended to make this operation (and the other
operations that the revew_detail handler performs) atomic, to prevent
things getting further out of step. It does *not* fix the existing
incosistency.

review_delete has been atomicified as well as it likely needs the same
treatment, but this has not been examined in detail.
2017-08-09 12:27:41 +10:00
James Polley
e63f7b7a7e Add reviews to admin interface 2017-08-09 10:35:16 +10:00
James Polley
7fe5a09bfb Return an integer for the slice index.
Resolves:

    File "/app/symposion_app/vendor/symposion/reviews/views.py", line 230, in review_random_proposal
    proposals = proposals[:(len(proposals) + 1) / 2]
    TypeError: slice indices must be integers or None or have an __index__ method
2017-08-08 23:00:36 +00:00
Steve Kowalik
866217bf35 Switch score calculation to pure Python
Rip out the score expression madness, and calculate the score in Python,
since I hear that Python is better at math than SQL is.
2017-08-08 16:41:02 +10:00
Sachi King
084c78e2cd Fix score calculation hack
I have no idea why we do this in the database as some magic after we
call save().  I also have no idea why MySQL is seeming to think we want
type BIGINT UNSIGNED at the end of the
((2 * '+2' + '+1') - ( '-1' + 2 * '-2')) but it does.

Setting it to 2.0 or float(2) doesn't get the ORM to get this right, but
we are going to Decimal and making the 2 multiplier be of type Decimal
manages to make the ORM pull it's shit together and use something that
seems like we're okay with.

+1, -2 = 1 / 2 = -0.5 Score == True
Looks like it works.

UPDATE `symposion_reviews_proposalresult` SET `score` = CASE WHEN `symposion_reviews_proposalresult`.`vote_count` = 0 THEN '0' ELSE ((((2 * `symposion_reviews_proposalresult`.`plus_two`) + `symposion_reviews_proposalresult`.`plus_one`) - (`symposion_reviews_proposalresult`.`minus_one` + (2 * `symposion_reviews_proposalresult`.`minus_two`))) / (`symposion_reviews_proposalresult`.`vote_count` * 1)) END WHERE `symposion_reviews_proposalresult`.`id` = 1
2017-08-08 15:37:33 +10:00