[SIO-2521] Submission confirmation e-mail should contain the SIO login Created: 2022-12-7  Updated: 2022-12-7

Status: New
Project: The SIO2 project
Component/s: OIOIOI
Affects Version/s: Current Version
Fix Version/s: None

Type: New Feature Priority: Major
Reporter: Jakub Radoszewski Assignee: Unassigned
Resolution: Unresolved Votes: 0
Labels: None


 Description   
The current e-mail sent by SIO looks as follows. Please add user login. I got a complaint where a contestant mixed up their ids and there was no way of checking this natural information in the e-mail.

Szanowny Użytkowniku,

potwierdzamy otrzymanie Twojego zgłoszenia w konkursie
XXX Olimpiada Informatyczna – I etap:

Imię i nazwisko: Stanisław Pawelec

ID konkursu: oi30-1
Zadanie: ply
ID zgłoszenia: 556866
Nr zgłoszenia do tego zadania: 1
Data zgłoszenia: 2022-11-18 19:54:56
Rozmiar kodu źródłowego: 1262 bajty


Zachowaj tę wiadomość i przesłany kod. Poniżej znajduje się kryptograficzne
potwierdzenie, które wraz z odpowiadającym mu kodem źródłowym stanowi
dowód rejestracji w systemie Twojego zgłoszenia.

Organizatorzy


--- BEGIN PROOF DATA ---
.eJxFjstuwyAQRf-Fbe2K4Q3fkb3F4HGDGkNk7EVT5d-D20pd3secO9-s1WNLNF1ju7LAX
JTABSovJE-otEUe0SEtlNDgrJwniBYpoliSXKA3E4BC4RcuwSMb2H2reKN1yqXtsXR0nll
QVviBHY22H2lBgf2vlrhSH7_fvvp9qmWntndds-QjdGuO-5kLLsQIMIK7gAtaBW3e1YmSb
5wHztnvwh_tQR9xo89utgPX3FquZSqVBRjY-YPWxhnT0_zodRBGPF8zxk_Q:1ow6Vs:J6h
teuwrQQltFID2-zdE8ypNF34
--- END PROOF DATA ---




[SIO-2520] Error 403 when clicking on a question's author in SIO2 Created: 2022-11-1  Updated: 2022-11-1

Status: New
Project: The SIO2 project
Component/s: OIOIOI
Affects Version/s: Current Version
Fix Version/s: None

Type: Bug Priority: Major
Reporter: Jakub Radoszewski Assignee: Unassigned
Resolution: Unresolved Votes: 0
Labels: None


 Description   
I am a contest admin but not SIO2 admin in contest https://sio2.mimuw.edu.pl/c/oi30-1/. For each question asked by the contestants, I have 3 clickable links: author, date and question topic. The first one (e.g. https://sio2.mimuw.edu.pl/c/oi30-1/u/74551) produces error 403 for me. I presume that this is to show me that I don't have permissions to view the user data (right?), but my user feeling is unpleasant.




[SIO-2518] Test names containing other symbols Created: 2022-09-29  Updated: 2022-09-29

Status: New
Project: The SIO2 project
Component/s: OIOIOI
Affects Version/s: Current Version
Fix Version/s: None

Type: New Feature Priority: Major
Reporter: Jakub Radoszewski Assignee: Unassigned
Resolution: Unresolved Votes: 0
Labels: None


 Description   
I would like to allow capital letters [A-Z] and delimiting symbols like _- in test names. E.g.:
max7sorted_sequence.in




[SIO-2517] Dead link on github Created: 2022-09-29  Updated: 2022-09-29

Status: New
Project: The SIO2 project
Component/s: SIO2 Project Website and Infrastructure
Affects Version/s: Current Version
Fix Version/s: None

Type: Bug Priority: Major
Reporter: Jakub Radoszewski Assignee: Unassigned
Resolution: Unresolved Votes: 0
Labels: None


 Description   
Link https://github.com/sio2project/task-package-examples/blob/master/tutorial/kwa/doc/kwazad.pdf gives error 404 on https://github.com/sio2project/oioioi/wiki/%5BPL%5D-1.-Podstawowa-paczka




[SIO-2516] Link to problem package structure should be accessible via Szkopul Created: 2022-09-29  Updated: 2022-09-29

Status: New
Project: The SIO2 project
Component/s: OIOIOI
Affects Version/s: Current Version
Fix Version/s: None

Type: Improvement Priority: Major
Reporter: Jakub Radoszewski Assignee: Unassigned
Resolution: Unresolved Votes: 0
Labels: None


 Description   
This guy: https://github.com/sio2project/oioioi/wiki should be linked somewhere. Perhaps here: https://szkopul.edu.pl/c/wprawki-wp-2022/admin/contests/probleminstance/




[SIO-2515] Problem package without tests in in/ fails Created: 2022-09-29  Updated: 2022-09-29

Status: New
Project: The SIO2 project
Component/s: OIOIOI
Affects Version/s: Current Version
Fix Version/s: None

Type: Improvement Priority: Major
Reporter: Jakub Radoszewski Assignee: Unassigned
Resolution: Unresolved Votes: 0
Labels: None

Attachments: File max.tgz    

 Description   
A task without tests generated in in/ does not upload to Szkopul. It can be the case that all tests are automjatically generated, though. So it should be uploaded afaik.




[SIO-2514] SameSite atribute in language preference cookie Created: 2022-06-6  Updated: 2022-06-6

Status: New
Project: The SIO2 project
Component/s: OIOIOI
Affects Version/s: TAG 2021/22 Summer Sprint 3
Fix Version/s: None

Type: Improvement Priority: Minor
Reporter: Kacper Lewandowski Assignee: Kacper Lewandowski
Resolution: Unresolved Votes: 0
Labels: None

Attachments: PNG File Screenshot from 2022-06-01 12-08-52.png    

 Description   
Firefox warns:

Cookie “lang” will be soon rejected because it has the “SameSite” attribute set to “None” or an invalid value, without the “secure” attribute. To know more about the “SameSite“ attribute, read https://developer.mozilla.org/docs/Web/HTTP/Headers/Set-Cookie/SameSite




[SIO-2513] Export reports for all submissions Created: 2022-05-29  Updated: 2022-05-30  Due: 2022-12-1

Status: New
Project: The SIO2 project
Component/s: OIOIOI
Affects Version/s: Current Version
Fix Version/s: None

Type: Improvement Priority: Minor
Reporter: Bartosz Kostka Assignee: Unassigned
Resolution: Unresolved Votes: 0
Labels: pa


 Description   
For resolver purposes the following data are needed in json format for every submission(report):
- time of submission
- submitter data (probably login or/and id)
- task id
- submission score
- id of first test not marked as "OK"
( optionally - list of tests and verdicts )

 Comments   
Comment by Tomek Waleń [ 2022-05-30 ]
Do you think about additional command for exporting reports (i.e. as CSV or collection of JSONs) or something in web-interface (like current export of submissions)?
Comment by Paweł Dietrich [ 2022-05-30 ]
I asked Bartek if he would prefer to have it generated manually or available on some endpoint and he responded that "it is fine to be manually extracted, but an endpoint would be nice".
I think in terms of endpoints an API endpoint would be great; in terms of manual export button "Download summary" in django-admin submissions view is proper place for it. Also a ./manage.py command can be handy.
(When I think about it: with any two of those places, the third one can be achieved with little work.)
I am not convinced yet whether it should be a global feature of PA only.





[SIO-2512] Allow configuring who can rejudge Created: 2022-05-23  Updated: 2022-05-23

Status: New
Project: The SIO2 project
Component/s: OIOIOI
Affects Version/s: Current Version
Fix Version/s: None

Type: Improvement Priority: Minor
Reporter: Paweł Dietrich Assignee: Unassigned
Resolution: Unresolved Votes: 0
Labels: None


 Description   
Currently teachers are able to make mass rejudges (via selecting submissions in submissions tab). In case of small rejudges (<100submissions) this is not a problem. When bigger rejudges occur, filetracker2 dies due to big number of requests from Workers.

In perfect scenario we would replace the inefficient storage backend, but it would require a bit of work. Current workaround is to decrease CONCURENCY in settings.py, but it might be a nice feature to be able to control access to this (mass rejudge) feature.

One way I was thinking to implement it is adding a predicate can_mass_rejudge w ContestController getting a request and rejudge order. One can override its behavior per ContestController basis.






[SIO-2511] Maybe use default django 404 page Created: 2022-05-9  Updated: 2022-05-9

Status: New
Project: The SIO2 project
Component/s: OIOIOI
Affects Version/s: Current Version
Fix Version/s: None

Type: Improvement Priority: Minor
Reporter: Andrzej Radzimiński Assignee: Unassigned
Resolution: Unresolved Votes: 0
Labels: None


 Description   
We are still using custom 404 page (see `handler404`), due to Django security issues, but it seems, that they, are not longer present in new versions.

Check if 404 page provided by Django has no known security issue, and see how it looks. If there are no reasons not to, change 404 page to be the one provided by Django.




[SIO-2508] Glitches during szkopuł deployment Created: 2022-05-3  Updated: 2022-05-3

Status: New
Project: The SIO2 project
Component/s: SIO2 Project Website and Infrastructure
Affects Version/s: TAG 2021/22 Summer Sprint 1
Fix Version/s: None

Type: Improvement Priority: Major
Reporter: Tomek Waleń Assignee: Unassigned
Resolution: Unresolved Votes: 0
Labels: None


 Description   
- hudson job for rebase-szkopuł is still failing due to permission problem

https://hudson.sio2project.mimuw.edu.pl/job/szkopul-rebase/471/console

To ssh://hudson@ripper.dasie.mimuw.edu.pl:29418/szkopul
 ! [remote rejected] master -> master (you are not allowed to upload merges)
error: failed to push some refs to 'ssh://hudson@ripper.dasie.mimuw.edu.pl:29418/szkopul&#39;

(workaround: rebase locally)

- in deployment scripts (ssh://gerrit.sio2project.mimuw.edu.pl:29418/szkopul branch deployment)

- venv is created twice (both times with python3), only one venv should be created and used




[SIO-2506] Improve PreferenceFactory Created: 2022-04-21  Updated: 2022-04-25

Status: New
Project: The SIO2 project
Component/s: OIOIOI
Affects Version/s: Current Version
Fix Version/s: None

Type: Bug Priority: Major
Reporter: Andrzej Radzimiński Assignee: Joanna Wojciechowska
Resolution: Unresolved Votes: 0
Labels: None


 Description   
Following changes added `PreferenceFactory` class that is used to generate preference forms, currently used to generate edit profile view form:
https://jira.sio2project.mimuw.edu.pl/browse/SIO-1624
https://gerrit.sio2project.mimuw.edu.pl/#/c/2291/

Currently only place where `add_field` method is used is inside:
1. base/forms.py > _maybe_add_field
2. base/views.py > adjust_preferences_factory_fields
3. tests

Two improvements have to be made:
1. `_maybe_add_field` function takes label strings from settings, where they are translated. Functionality should be added to automatically translate labels in `PreferenceFactory` and move translation logic out of settings. It should be considered if label names shouldn't be moved from settings entirely.
Alternatively field labes can be made into positional parameter, and translation will occur in caller.

2. With addition of `UserPreferences` model `PreferenceFactory` needs functionality to automatically add fields from `UserPreferences`, similarly to how forms can be automatically generated from models.
It is currently made manually inside `adjust_preferences_factory_fields` which can badly impact future refactor/updates.




[SIO-2505] Default dark theme in admin panels Created: 2022-04-13  Updated: 2022-04-14

Status: New
Project: The SIO2 project
Component/s: OIOIOI
Affects Version/s: Current Version
Fix Version/s: None

Type: Bug Priority: Major
Reporter: Aleksander Tudruj Assignee: Joanna Wojciechowska
Resolution: Unresolved Votes: 0
Labels: None


 Description   
Every page at /admin/ is dark themed after upgrading to Django 3.2.

https://docs.djangoproject.com/en/3.2/ref/contrib/admin/#theming-support


 Comments   
Comment by Tomek Waleń [ 2022-04-14 ]
There are 2 packages that disable this behaviour:
* https://github.com/frnhr/django-light
* https://github.com/frnhr/django-light
Comment by Joanna Wojciechowska [ 2022-04-14 ]
I found the approach from this site:
https://stackoverflow.com/questions/67135053/can-someone-explain-to-my-why-my-django-admin-theme-is-dark

easier, so I implemented this solution. If you still think that using the package you mentioned better, I can use your solution.




[SIO-2504] Misaligned checkboxes in every pupils form Created: 2022-04-12  Updated: 2022-04-22

Status: New
Project: The SIO2 project
Component/s: OIOIOI
Affects Version/s: Current Version
Fix Version/s: None

Type: Bug Priority: Minor
Reporter: Mieszko Grodzicki Assignee: Mieszko Grodzicki
Resolution: Unresolved Votes: 0
Labels: None

Attachments: PNG File Zrzut ekranu z 2022-04-12 21-50-50.png    

 Description   
See attached screenshot

 Comments   
Comment by Mieszko Grodzicki [ 2022-04-22 ]
https://github.com/sio2project/oioioi/pull/61




[SIO-2503] ProblemInstance settings with default values inherited from the Contest. Created: 2022-04-12  Updated: 2022-04-12

Status: New
Project: The SIO2 project
Component/s: OIOIOI
Affects Version/s: Current Version
Fix Version/s: None

Type: New Feature Priority: Major
Reporter: Mieszko Grodzicki Assignee: Unassigned
Resolution: Unresolved Votes: 0
Labels: None

Attachments: PDF File ustawienia_dziedziczone.pdf    

 Description   
Description as attachment.




[SIO-2500] Javascript translations raise System Error Created: 2022-04-11  Updated: 2022-04-11

Status: New
Project: The SIO2 project
Component/s: OIOIOI
Affects Version/s: TAG 2021/22 Summer Sprint 1
Fix Version/s: None

Type: Bug Priority: Major
Reporter: Tomek Waleń Assignee: Unassigned
Resolution: Unresolved Votes: 0
Labels: None


 Description   
Accessing page /jsi18n/ tiggers System error:

Internal Server Error: /jsi18n/
Traceback (most recent call last):
  File "/home/oioioi/.local/lib/python3.7/site-packages/django/core/handlers/exception.py", line 47, in inner
    response = get_response(request)
  File "/home/oioioi/.local/lib/python3.7/site-packages/django/core/handlers/base.py", line 181, in _get_response
    response = wrapped_callback(request, callback_args, **callback_kwargs)
  File "/usr/lib/python3.7/contextlib.py", line 74, in inner
    return func(args, kwds)
  File "/home/oioioi/.local/lib/python3.7/site-packages/django/views/generic/base.py", line 70, in view
    return self.dispatch(request, *args, kwargs)
  File "/home/oioioi/.local/lib/python3.7/site-packages/django/views/generic/base.py", line 98, in dispatch
    return handler(request, *args, **kwargs)
  File "/home/oioioi/.local/lib/python3.7/site-packages/django/views/i18n.py", line 213, in get
    paths = self.get_paths(packages) if packages else None
  File "/home/oioioi/.local/lib/python3.7/site-packages/django/views/i18n.py", line 224, in get_paths
    'Invalid package(s) provided to JavaScriptCatalog: %s' % ','.join(excluded)
ValueError: Invalid package(s) provided to JavaScriptCatalog: oioioi._locale
[11/Apr/2022 10:32:34] "GET /jsi18n/ HTTP/1.1" 500 114882




[SIO-2498] Edycja profilu nie wymaga podania hasła Created: 2022-04-2  Updated: 2022-04-2

Status: New
Project: The SIO2 project
Component/s: OIOIOI
Affects Version/s: Current Version
Fix Version/s: None

Type: Bug Priority: Major
Reporter: Kacper Lewandowski Assignee: Kacper Lewandowski
Resolution: Unresolved Votes: 0
Labels: None


 Description   
Dokonanie edycji proflu (w tym adresu email) nie wymaga ponownego podania hasła.
Należy dodać dodatkową autoryzację.




[SIO-2494] upgrade pytest Created: 2022-03-28  Updated: 2022-04-25

Status: New
Project: The SIO2 project
Component/s: OIOIOI
Affects Version/s: TAG 2021/22 Summer Sprint 1
Fix Version/s: None

Type: Improvement Priority: Major
Reporter: Tomek Waleń Assignee: Unassigned
Resolution: Unresolved Votes: 0
Labels: None


 Description   
Currently code is using pytest version 4.6.11 (released on 2020-06-04).

Current version is pytest 7.1.2 (released on 2022-04-23).

It seems that there are no reasons why we should use 4.x pytest version,
so we should use latest version of pytest in setup.py.

Some changes in tests API might be required:
https://docs.pytest.org/en/latest/backwards-compatibility.html




[SIO-2493] Solutions are not scored after clean SIO initialization Created: 2022-03-23  Updated: 2022-04-11

Status: Open
Project: The SIO2 project
Component/s: Evaluation Engine / Workers
Affects Version/s: Current Version
Fix Version/s: None

Type: Bug Priority: Major
Reporter: Aleksander Tudruj Assignee: Unassigned
Resolution: Unresolved Votes: 0
Labels: None

Attachments: PNG File screencapture-localhost-8000-c-hello-contest-s-4-2022-03-30-19_00_59.png     PNG File Screenshot from 2022-03-30 18-58-51.png     PNG File Screenshot from 2022-03-30 18-58-57.png     PNG File Screenshot from 2022-03-30 19-03-06.png    

 Description   
After clean initialization of SIO solutions are not scored due to the lack of a few directories in 'web' container.

They can be easily crated using
```
mkdir -p media/links/submissions
mkdir -p media/links/problems
```
using container's bash (at /sio2/deployment), but this process looks like it could be solved during Docker initialization (in Dockerfile).


Update: It seems that the problem cannot be solved that easily. Creating the directories does not change anything. The first submission is never successful, but every other is.

This is the log generated at the page.

Traceback (most recent call last):
  File "/sio2/oioioi/oioioi/evalmgr/tasks.py", line 344, in evalmgr_job
    % (env['error']['message'], env['error']['traceback'])
RuntimeError: Error from workers:
Some tasks in a group failed.

Exception: received from worker237bb8b1bdbe@172.18.0.5:55778: exception: <twisted.python.failure.Failure exceptions.RuntimeError: Binding not existing location>
Remote traceback:
Traceback (most recent call last):
  File "/usr/local/lib/python2.7/threading.py", line 801, in __bootstrap_inner
    self.run()
  File "/usr/local/lib/python2.7/threading.py", line 754, in run
    self.__target(*self.__args, **self.__kwargs)
  File "/home/oioioi/.local/lib/python2.7/site-packages/twisted/_threads/_threadworker.py", line 46, in work
    task()
  File "/home/oioioi/.local/lib/python2.7/site-packages/twisted/_threads/_team.py", line 190, in doWork
    task()
--- <exception caught here> ---
  File "/home/oioioi/.local/lib/python2.7/site-packages/twisted/python/threadpool.py", line 250, in inContext
    result = inContext.theWork()
  File "/home/oioioi/.local/lib/python2.7/site-packages/twisted/python/threadpool.py", line 266, in <lambda>
    inContext.theWork = lambda: context.call(ctx, func, *args, **kw)
  File "/home/oioioi/.local/lib/python2.7/site-packages/twisted/python/context.py", line 122, in callWithContext
    return self.currentContext().callWithContext(ctx, func, *args, **kw)
  File "/home/oioioi/.local/lib/python2.7/site-packages/twisted/python/context.py", line 85, in callWithContext
    return func(*args,**kw)
  File "/home/oioioi/.local/lib/python2.7/site-packages/sio/protocol/worker.py", line 14, in _runner_wrap
    renv = runner.run(env)
  File "/home/oioioi/.local/lib/python2.7/site-packages/sio/workers/runner.py", line 75, in run
    environ = first_entry_point('sio.jobs', environ['job_type'])(environ)
  File "/home/oioioi/.local/lib/python2.7/site-packages/sio/compilers/job.py", line 14, in run
    environ = compiler(environ)
  File "/home/oioioi/.local/lib/python2.7/site-packages/sio/compilers/gcc.py", line 35, in run_gplusplus4_8_2_cpp11
    return CPPCompiler.gcc_4_8_2_cpp11().compile(environ)
  File "/home/oioioi/.local/lib/python2.7/site-packages/sio/compilers/gcc.py", line 20, in gcc_4_8_2_cpp11
    obj = cls('gcc.4_8_2')
  File "/home/oioioi/.local/lib/python2.7/site-packages/sio/compilers/common.py", line 69, in __init__
    self.executor = PRootExecutor('compiler-' + self.sandbox)
  File "/home/oioioi/.local/lib/python2.7/site-packages/sio/workers/executors.py", line 782, in __init__
    self._proot_options()
  File "/home/oioioi/.local/lib/python2.7/site-packages/sio/workers/executors.py", line 847, in _proot_options
    self._bind(self.chroot.path, force=True)
  File "/home/oioioi/.local/lib/python2.7/site-packages/sio/workers/executors.py", line 810, in _bind
    raise RuntimeError("Binding not existing location")
exceptions.RuntimeError: Binding not existing location

TB:
Traceback (most recent call last):
  File "/home/oioioi/.local/lib/python2.7/site-packages/twisted/internet/defer.py", line 654, in _runCallbacks
    current.result = callback(current.result, *args, **kw)
  File "/home/oioioi/.local/lib/python2.7/site-packages/twisted/internet/defer.py", line 1116, in _cbDeferred
    self.callback(self.resultList)
  File "/home/oioioi/.local/lib/python2.7/site-packages/twisted/internet/defer.py", line 460, in callback
    self._startRunCallbacks(result)
  File "/home/oioioi/.local/lib/python2.7/site-packages/twisted/internet/defer.py", line 568, in _startRunCallbacks
    self._runCallbacks()
--- <exception caught here> ---
  File "/home/oioioi/.local/lib/python2.7/site-packages/twisted/internet/defer.py", line 654, in _runCallbacks
    current.result = callback(current.result, *args, **kw)
  File "/home/oioioi/.local/lib/python2.7/site-packages/sio/sioworkersd/taskmanager.py", line 264, in _collect
    raise MultiException("Some tasks in a group failed.", failed)
sio.sioworkersd.taskmanager.MultiException: Some tasks in a group failed.

Exception: received from worker237bb8b1bdbe@172.18.0.5:55778: exception: <twisted.python.failure.Failure exceptions.RuntimeError: Binding not existing location>
Remote traceback:
Traceback (most recent call last):
  File "/usr/local/lib/python2.7/threading.py", line 801, in __bootstrap_inner
    self.run()
  File "/usr/local/lib/python2.7/threading.py", line 754, in run
    self.__target(*self.__args, **self.__kwargs)
  File "/home/oioioi/.local/lib/python2.7/site-packages/twisted/_threads/_threadworker.py", line 46, in work
    task()
  File "/home/oioioi/.local/lib/python2.7/site-packages/twisted/_threads/_team.py", line 190, in doWork
    task()
--- <exception caught here> ---
  File "/home/oioioi/.local/lib/python2.7/site-packages/twisted/python/threadpool.py", line 250, in inContext
    result = inContext.theWork()
  File "/home/oioioi/.local/lib/python2.7/site-packages/twisted/python/threadpool.py", line 266, in <lambda>
    inContext.theWork = lambda: context.call(ctx, func, *args, **kw)
  File "/home/oioioi/.local/lib/python2.7/site-packages/twisted/python/context.py", line 122, in callWithContext
    return self.currentContext().callWithContext(ctx, func, *args, **kw)
  File "/home/oioioi/.local/lib/python2.7/site-packages/twisted/python/context.py", line 85, in callWithContext
    return func(*args,**kw)
  File "/home/oioioi/.local/lib/python2.7/site-packages/sio/protocol/worker.py", line 14, in _runner_wrap
    renv = runner.run(env)
  File "/home/oioioi/.local/lib/python2.7/site-packages/sio/workers/runner.py", line 75, in run
    environ = first_entry_point('sio.jobs', environ['job_type'])(environ)
  File "/home/oioioi/.local/lib/python2.7/site-packages/sio/compilers/job.py", line 14, in run
    environ = compiler(environ)
  File "/home/oioioi/.local/lib/python2.7/site-packages/sio/compilers/gcc.py", line 35, in run_gplusplus4_8_2_cpp11
    return CPPCompiler.gcc_4_8_2_cpp11().compile(environ)
  File "/home/oioioi/.local/lib/python2.7/site-packages/sio/compilers/gcc.py", line 20, in gcc_4_8_2_cpp11
    obj = cls('gcc.4_8_2')
  File "/home/oioioi/.local/lib/python2.7/site-packages/sio/compilers/common.py", line 69, in __init__
    self.executor = PRootExecutor('compiler-' + self.sandbox)
  File "/home/oioioi/.local/lib/python2.7/site-packages/sio/workers/executors.py", line 782, in __init__
    self._proot_options()
  File "/home/oioioi/.local/lib/python2.7/site-packages/sio/workers/executors.py", line 847, in _proot_options
    self._bind(self.chroot.path, force=True)
  File "/home/oioioi/.local/lib/python2.7/site-packages/sio/workers/executors.py", line 810, in _bind
    raise RuntimeError("Binding not existing location")
exceptions.RuntimeError: Binding not existing location


The next step in the recipe was:

['compile_end', 'oioioi.programs.handlers.compile_end']
The final evaluation environment (with recipe and error_handlers removed for readability) was:

{ 'compilation_result_size_limit': 10485760,
    'compiler': 'g++4_8_2_cpp11',
    'contest_id': 'hello-contest',
    'contest_priority': 10,
    'contest_weight': 1000,
    'error': { 'message': 'Some tasks in a group failed.\n'
                            '\n'
                            'Exception: received from '
                            'worker237bb8b1bdbe@172.18.0.5:55778: exception: '
                            '<twisted.python.failure.Failure '
                            'exceptions.RuntimeError: Binding not existing '
                            'location> \n'
                            'Remote traceback:\n'
                            'Traceback (most recent call last):\n'
                            ' File "/usr/local/lib/python2.7/threading.py", '
                            'line 801, in __bootstrap_inner\n'
                            ' self.run()\n'
                            ' File "/usr/local/lib/python2.7/threading.py", '
                            'line 754, in run\n'
                            ' self.__target(*self.__args, **self.__kwargs)\n'
                            ' File '
                            '"/ home/oioioi/.local/lib/python2.7/site-packages/twisted/_threads/ _threadworker.py", '
                            'line 46, in work\n'
                            ' task()\n'
                            ' File '
                            '"/ home/oioioi/.local/lib/python2.7/site-packages/twisted/_threads/ _team.py", '
                            'line 190, in doWork\n'
                            ' task()\n'
                            '--- <exception caught here> ---\n'
                            ' File '
                            '"/ home/oioioi/.local/lib/python2.7/site-packages/twisted/python/ threadpool.py", '
                            'line 250, in inContext\n'
                            ' result = inContext.theWork()\n'
                            ' File '
                            '"/ home/oioioi/.local/lib/python2.7/site-packages/twisted/python/ threadpool.py", '
                            'line 266, in <lambda>\n'
                            ' inContext.theWork = lambda: context.call(ctx, '
                            'func, *args, **kw)\n'
                            ' File '
                            '"/ home/oioioi/.local/lib/python2.7/site-packages/twisted/python/ context.py", '
                            'line 122, in callWithContext\n'
                            ' return '
                            'self.currentContext().callWithContext(ctx, func, '
                            '*args, **kw)\n'
                            ' File '
                            '"/ home/oioioi/.local/lib/python2.7/site-packages/twisted/python/ context.py", '
                            'line 85, in callWithContext\n'
                            ' return func(*args,**kw)\n'
                            ' File '
                            '"/ home/oioioi/.local/lib/python2.7/site-packages/sio/protocol/worker.py", '
                            'line 14, in _runner_wrap\n'
                            ' renv = runner.run(env)\n'
                            ' File '
                            '"/ home/oioioi/.local/lib/python2.7/site-packages/sio/workers/runner.py", '
                            'line 75, in run\n'
                            " environ = first_entry_point('sio.jobs', "
                            "environ['job_type']) (environ)\n"
                            ' File '
                            '"/ home/oioioi/.local/lib/python2.7/site-packages/sio/compilers/job.py", '
                            'line 14, in run\n'
                            ' environ = compiler(environ)\n'
                            ' File '
                            '"/ home/oioioi/.local/lib/python2.7/site-packages/sio/compilers/gcc.py", '
                            'line 35, in run_gplusplus4_8_2_cpp11\n'
                            ' return '
                            'CPPCompiler.gcc_4_8_2_cpp11().compile(environ)\n'
                            ' File '
                            '"/ home/oioioi/.local/lib/python2.7/site-packages/sio/compilers/gcc.py", '
                            'line 20, in gcc_4_8_2_cpp11\n'
                            " obj = cls('gcc.4_8_2')\n"
                            ' File '
                            '"/ home/oioioi/.local/lib/python2.7/site-packages/sio/compilers/common.py", '
                            'line 69, in __init__\n'
                            " self.executor = PRootExecutor('compiler-' + "
                            'self.sandbox)\n'
                            ' File '
                            '"/ home/oioioi/.local/lib/python2.7/site-packages/sio/workers/ executors.py", '
                            'line 782, in __init__\n'
                            ' self._proot_options()\n'
                            ' File '
                            '"/ home/oioioi/.local/lib/python2.7/site-packages/sio/workers/ executors.py", '
                            'line 847, in _proot_options\n'
                            ' self._bind(self.chroot.path, force=True)\n'
                            ' File '
                            '"/ home/oioioi/.local/lib/python2.7/site-packages/sio/workers/ executors.py", '
                            'line 810, in _bind\n'
                            ' raise RuntimeError("Binding not existing '
                            'location")\n'
                            'exceptions.RuntimeError: Binding not existing '
                            'location\n',
                 'traceback': 'Traceback (most recent call last):\n'
                              ' File '
                              '"/ home/oioioi/.local/lib/python2.7/site-packages/twisted/internet/ defer.py", '
                              'line 654, in _runCallbacks\n'
                              ' current.result = callback(current.result, '
                              '*args, **kw)\n'
                              ' File '
                              '"/ home/oioioi/.local/lib/python2.7/site-packages/twisted/internet/ defer.py", '
                              'line 1116, in _cbDeferred\n'
                              ' self.callback(self.resultList)\n'
                              ' File '
                              '"/ home/oioioi/.local/lib/python2.7/site-packages/twisted/internet/ defer.py", '
                              'line 460, in callback\n'
                              ' self._startRunCallbacks(result)\n'
                              ' File '
                              '"/ home/oioioi/.local/lib/python2.7/site-packages/twisted/internet/ defer.py", '
                              'line 568, in _startRunCallbacks\n'
                              ' self._runCallbacks()\n'
                              '--- <exception caught here> ---\n'
                              ' File '
                              '"/ home/oioioi/.local/lib/python2.7/site-packages/twisted/internet/ defer.py", '
                              'line 654, in _runCallbacks\n'
                              ' current.result = callback(current.result, '
                              '*args, **kw)\n'
                              ' File '
                              '"/ home/oioioi/.local/lib/python2.7/site-packages/sio/sioworkersd/ taskmanager.py", '
                              'line 264, in _collect\n'
                              ' raise MultiException("Some tasks in a group '
                              'failed.", failed)\n'
                              'sio.sioworkersd.taskmanager.MultiException: '
                              'Some tasks in a group failed.\n'
                              '\n'
                              'Exception: received from '
                              'worker237bb8b1bdbe@172.18.0.5:55778: exception: '
                              '<twisted.python.failure.Failure '
                              'exceptions.RuntimeError: Binding not existing '
                              'location> \n'
                              'Remote traceback:\n'
                              'Traceback (most recent call last):\n'
                              ' File "/usr/local/lib/python2.7/threading.py", '
                              'line 801, in __bootstrap_inner\n'
                              ' self.run()\n'
                              ' File "/usr/local/lib/python2.7/threading.py", '
                              'line 754, in run\n'
                              ' self.__target(*self.__args, '
                              '**self.__kwargs)\n'
                              ' File '
                              '"/ home/oioioi/.local/lib/python2.7/site-packages/twisted/_threads/ _threadworker.py", '
                              'line 46, in work\n'
                              ' task()\n'
                              ' File '
                              '"/ home/oioioi/.local/lib/python2.7/site-packages/twisted/_threads/ _team.py", '
                              'line 190, in doWork\n'
                              ' task()\n'
                              '--- <exception caught here> ---\n'
                              ' File '
                              '"/ home/oioioi/.local/lib/python2.7/site-packages/twisted/python/ threadpool.py", '
                              'line 250, in inContext\n'
                              ' result = inContext.theWork()\n'
                              ' File '
                              '"/ home/oioioi/.local/lib/python2.7/site-packages/twisted/python/ threadpool.py", '
                              'line 266, in <lambda>\n'
                              ' inContext.theWork = lambda: '
                              'context.call(ctx, func, *args, **kw)\n'
                              ' File '
                              '"/ home/oioioi/.local/lib/python2.7/site-packages/twisted/python/ context.py", '
                              'line 122, in callWithContext\n'
                              ' return '
                              'self.currentContext().callWithContext(ctx, '
                              'func, *args, **kw)\n'
                              ' File '
                              '"/ home/oioioi/.local/lib/python2.7/site-packages/twisted/python/ context.py", '
                              'line 85, in callWithContext\n'
                              ' return func(*args,**kw)\n'
                              ' File '
                              '"/ home/oioioi/.local/lib/python2.7/site-packages/sio/protocol/worker.py", '
                              'line 14, in _runner_wrap\n'
                              ' renv = runner.run(env)\n'
                              ' File '
                              '"/ home/oioioi/.local/lib/python2.7/site-packages/sio/workers/runner.py", '
                              'line 75, in run\n'
                              " environ = first_entry_point('sio.jobs', "
                              "environ['job_type']) (environ)\n"
                              ' File '
                              '"/ home/oioioi/.local/lib/python2.7/site-packages/sio/compilers/job.py", '
                              'line 14, in run\n'
                              ' environ = compiler(environ)\n'
                              ' File '
                              '"/ home/oioioi/.local/lib/python2.7/site-packages/sio/compilers/gcc.py", '
                              'line 35, in run_gplusplus4_8_2_cpp11\n'
                              ' return '
                              'CPPCompiler.gcc_4_8_2_cpp11().compile(environ)\n'
                              ' File '
                              '"/ home/oioioi/.local/lib/python2.7/site-packages/sio/compilers/gcc.py", '
                              'line 20, in gcc_4_8_2_cpp11\n'
                              " obj = cls('gcc.4_8_2')\n"
                              ' File '
                              '"/ home/oioioi/.local/lib/python2.7/site-packages/sio/compilers/common.py", '
                              'line 69, in __init__\n'
                              " self.executor = PRootExecutor('compiler-' + "
                              'self.sandbox)\n'
                              ' File '
                              '"/ home/oioioi/.local/lib/python2.7/site-packages/sio/workers/ executors.py", '
                              'line 782, in __init__\n'
                              ' self._proot_options()\n'
                              ' File '
                              '"/ home/oioioi/.local/lib/python2.7/site-packages/sio/workers/ executors.py", '
                              'line 847, in _proot_options\n'
                              ' self._bind(self.chroot.path, force=True)\n'
                              ' File '
                              '"/ home/oioioi/.local/lib/python2.7/site-packages/sio/workers/ executors.py", '
                              'line 810, in _bind\n'
                              ' raise RuntimeError("Binding not existing '
                              'location")\n'
                              'exceptions.RuntimeError: Binding not existing '
                              'location\n'
                              '\n'},
    'eval_dir': '/eval/hello-contest/2',
    'exec_mode': 'unsafe',
    'extra_args': {},
    'extra_files': {},
    'group_id': 'GROUP_urn:uuid:8980e72f-527a-45e5-b6c3-b1a651168fca',
    'group_scorer': 'oioioi.programs.utils.min_group_scorer',
    'is_rejudge': True,
    'job_id': 'urn:uuid:ba0f4a74-c9e2-4ae0-ba15-efaba7434f0d',
    'language': 'cpp',
    'oioioi_instance': 'OIOIOI',
    'problem_id': 1,
    'problem_instance_id': 2,
    'problem_short_name': 'set',
    'report_kinds': ['INITIAL', 'NORMAL'],
    'restore_environ_func': 'oioioi.sioworkers.handlers.restore_job',
    'return_url': 'http://127.0.0.1:7890&#39;,
    'round_id': 1,
    'score_aggregator': 'oioioi.programs.utils.sum_score_aggregator',
    'source_file': '/problems/1/set.cpp@1648659058',
    'submission_id': 2,
    'submission_kind': 'IGNORED',
    'submission_owner': None,
    'untrusted_checker': False,
    'workers_jobs': { 'compile': { 'compilation_result_size_limit': 10485760,
                                       'compiler': 'g++4_8_2_cpp11',
                                       'contest_id': 'hello-contest',
                                       'contest_priority': 10,
                                       'contest_weight': 1000,
                                       'error_handlers': [ [ 'remove_queuedjob_on_error',
                                                                 'oioioi.evalmgr.handlers.remove_queuedjob_on_error'],
                                                              [ 'delete_executable',
                                                                 'oioioi.programs.handlers.delete_executable'],
                                                              [ 'create_error_report',
                                                                 'oioioi.contests.handlers.create_error_report'],
                                                              [ 'mail_admins_on_error',
                                                                 'oioioi.contests.handlers.mail_admins_on_error'],
                                                              [ 'update_report_statuses',
                                                                 'oioioi.contests.handlers.update_report_statuses'],
                                                              [ 'update_submission_score',
                                                                 'oioioi.contests.handlers.update_submission_score'],
                                                              [ 'update_user_results',
                                                                 'oioioi.contests.handlers.update_user_results'],
                                                              [ 'call_submission_judged',
                                                                 'oioioi.contests.handlers.call_submission_judged'],
                                                              [ 'dump_final_env',
                                                                 'oioioi.evalmgr.handlers.dump_env',
                                                                  { 'message': 'Finished '
                                                                                'evaluation'}],
                                                              [ 'error_handled',
                                                                 'oioioi.evalmgr.handlers.error_handled']],
                                       'exec_mode': 'unsafe',
                                       'extra_args': {},
                                       'extra_files': {},
                                       'group_scorer': 'oioioi.programs.utils.min_group_scorer',
                                       'is_rejudge': True,
                                       'job_id': 'urn:uuid:ba0f4a74-c9e2-4ae0-ba15-efaba7434f0d',
                                       'job_type': 'compile',
                                       'language': 'cpp',
                                       'oioioi_instance': 'OIOIOI',
                                       'out_file': '/eval/hello-contest/2/urn:uuid:ba0f4a74-c9e2-4ae0-ba15-efaba7434f0d- exe',
                                       'problem_id': 1,
                                       'problem_instance_id': 2,
                                       'problem_short_name': 'set',
                                       'recipe': [ [ 'compile_end',
                                                         'oioioi.programs.handlers.compile_end'],
                                                      [ 'after_compile',
                                                         'oioioi.evalmgr.tasks._placeholder'],
                                                      [ 'collect_tests',
                                                         'oioioi.programs.handlers.collect_tests'],
                                                      [ 'initial_run_tests',
                                                         'oioioi.programs.handlers.run_tests',
                                                          {'kind': 'EXAMPLE'}],
                                                      [ 'initial_run_tests_end',
                                                         'oioioi.programs.handlers.run_tests_end'],
                                                      [ 'initial_grade_tests',
                                                         'oioioi.programs.handlers.grade_tests'],
                                                      [ 'initial_grade_groups',
                                                         'oioioi.programs.handlers.grade_groups'],
                                                      [ 'initial_grade_submission',
                                                         'oioioi.programs.handlers.grade_submission',
                                                          {'kind': 'EXAMPLE'}],
                                                      [ 'initial_make_report',
                                                         'oioioi.programs.handlers.make_report',
                                                          {'kind': 'INITIAL'}],
                                                      [ 'update_report_statuses',
                                                         'oioioi.contests.handlers.update_report_statuses'],
                                                      [ 'update_submission_score',
                                                         'oioioi.contests.handlers.update_submission_score'],
                                                      [ 'update_report_statuses',
                                                         'oioioi.contests.handlers.update_report_statuses'],
                                                      [ 'update_submission_score',
                                                         'oioioi.contests.handlers.update_submission_score'],
                                                      [ 'after_initial_tests',
                                                         'oioioi.evalmgr.tasks._placeholder'],
                                                      [ 'check_problem_instance_state',
                                                         'oioioi.suspendjudge.handlers.check_problem_instance_state'],
                                                      [ 'before_final_tests',
                                                         'oioioi.evalmgr.tasks._placeholder'],
                                                      [ 'final_run_tests',
                                                         'oioioi.programs.handlers.run_tests',
                                                          {'kind': 'NORMAL'}],
                                                      [ 'final_run_tests_end',
                                                         'oioioi.programs.handlers.run_tests_end'],
                                                      [ 'final_grade_tests',
                                                         'oioioi.programs.handlers.grade_tests'],
                                                      [ 'final_grade_groups',
                                                         'oioioi.programs.handlers.grade_groups'],
                                                      [ 'final_grade_submission',
                                                         'oioioi.programs.handlers.grade_submission'],
                                                      [ 'final_make_report',
                                                         'oioioi.programs.handlers.make_report'],
                                                      [ 'after_final_tests',
                                                         'oioioi.evalmgr.tasks._placeholder'],
                                                      [ 'delete_executable',
                                                         'oioioi.programs.handlers.delete_executable'],
                                                      [ 'update_report_statuses',
                                                         'oioioi.contests.handlers.update_report_statuses'],
                                                      [ 'update_submission_score',
                                                         'oioioi.contests.handlers.update_submission_score'],
                                                      [ 'update_user_results',
                                                         'oioioi.contests.handlers.update_user_results'],
                                                      [ 'call_submission_judged',
                                                         'oioioi.contests.handlers.call_submission_judged'],
                                                      [ 'dump_final_env',
                                                         'oioioi.evalmgr.handlers.dump_env',
                                                          { 'message': 'Finished '
                                                                        'evaluation'}]],
                                       'report_kinds': ['INITIAL', 'NORMAL'],
                                       'round_id': 1,
                                       'score_aggregator': 'oioioi.programs.utils.sum_score_aggregator',
                                       'source_file': '/problems/1/set.cpp@1648659058',
                                       'submission_id': 2,
                                       'submission_kind': 'IGNORED',
                                       'submission_owner': None,
                                       'task_priority': 200,
                                       'untrusted_checker': False}},
    'workers_jobs.results': {}}

 Comments   
Comment by Aleksander Tudruj [ 2022-03-30 ]
Problems after submitting.
Comment by Aleksander Tudruj [ 2022-03-30 ]
Model solutions.
Comment by Aleksander Tudruj [ 2022-03-30 ]
First submission
Comment by Aleksander Tudruj [ 2022-03-30 ]
Second submission.




[SIO-2491] No avatar for admin created users Created: 2022-03-18  Updated: 2022-10-4

Status: In Progress
Project: The SIO2 project
Component/s: OIOIOI
Affects Version/s: Current Version
Fix Version/s: None

Type: Bug Priority: Minor
Reporter: Aleksander Tudruj Assignee: Aleksander Tudruj
Resolution: Unresolved Votes: 0
Labels: None
Environment: Django 2.2.26 and 3.0.14

Attachments: PNG File Screenshot from 2022-03-18 15-35-29.png    

 Description   
When logging in with a user account created via administrator panel there is no avatar photo in upper right corner.





[SIO-2487] cleanup filterwarnings setting in pytest.ini Created: 2022-03-10  Updated: 2022-03-10

Status: New
Project: The SIO2 project
Component/s: OIOIOI
Affects Version/s: TAG 2021/22 Summer Sprint 1
Fix Version/s: None

Type: Improvement Priority: Minor
Reporter: Tomek Waleń Assignee: Unassigned
Resolution: Unresolved Votes: 0
Labels: None

Sprint: TAG 2021/22 Summer Sprint 1

 Description   
Currently filterwarnings ignores almost all depracationwarnings from oioioi code. This is inconvenient for testing library upgrades.

Proposed changes:
- show all warnings from oioioi during pytest
- fail pytest on selected warnings
- fix most important warnings and create Jira tickets for more time consuming




[SIO-2486] Merge hotfixes from szkopul to master branch of oioioi Created: 2022-03-10  Updated: 2022-06-5

Status: New
Project: The SIO2 project
Component/s: OIOIOI
Affects Version/s: TAG 2021/22 Summer Sprint 1
Fix Version/s: None

Type: Improvement Priority: Major
Reporter: Tomek Waleń Assignee: Andrzej Radzimiński
Resolution: Unresolved Votes: 0
Labels: None

Attachments: File szkopul.diff    
Sprint: TAG 2021/22 Summer Sprint 1

 Description   
Repository
  ssh://gerrit.sio2project.mimuw.edu.pl:29418/szkopul
contains several hotfixes and changes dedicated to szkopul.edu.pl.
On every deployment changes from main repository are rebased on top of szkopuł repo (see https://hudson.sio2project.mimuw.edu.pl/job/szkopul-rebase/).

This procedure is inconvenient (i.e. hotfixes are not tested, sometimes there are conflicts during rebasing).
We should try to move as many hotfixes as possible to main code and/or move some functionality controlled by system settings.

Results of `git diff github/master origin/master -- ':!*/npm-shrinkwrap.json'` attached to a ticket.

Commits on szopul & not in oioioi/master (git log --no-merges origin/master ^github/master):

a69d242557b550206540a50e0477648a9e8b4816 (HEAD -> master, origin/master, origin/HEAD) Add a command for gathering submissions statistics.
53295c08dc66bccd813b33467a9cf155a07b1e98 Add command for finding SE submissions.
ecfd2f625dee1fc4018835012af5a2003b430b55 PRODFIX set c++17 for non-makefile sinol packages
77ac6145c33d7af9e8d01a117920b52c74ee5803 (temporary) Allow lorys to manage packages inside his contest
bc92854a40cdf5a0fa46ccac03d51f36eb246b6c (no-ticket) Fix unicode handling in StatusSaver
9f5843072dad127840dc27ed03d22b9028304854 [to-master] fixed available_compilers default
e86d89707e118a934ea7800e09572da4b066f023 (to-master) added select_related
fd2e8c22a9b9e4571e6bfe0f45b84924a9697204 (to-master) usercontests should not be public
00a2e301caab91ce94e6eb73b2e0cebe6029a6a1 (to-master) show_info_about_workers update API
a8df27c215923fe175c1e92f7e76e02b9464e1a9 (no-ticket) Fix utf-8-related crash in exportszu
b47a36a71c9c3ac56d151c44c705cd04156adb4c (to-master) Added ingen failure handling
403da241c78e2101cd86432fc0e2c1034cca9e80 [tmp] instrument The Queries for perf measure
b07d69f2b97ea179d46feac1e0565cb82cc3af3c [PRODFIX] Change oioioi/notifications/server/npm-shrinkwrap.json
dc4a0637a8a17d04290c9aea1eef2012b0e24f0a [HOTFIX] Fix statistics breaking for model solutions
4c6fa0e3a31af72157bf3f492d67a3e7094525e2 Added Main importer
042f6e24a67c344c10f4aa38b61e9678883fba28 [TEMPFIX] Print where the empty controller hack is needed
49ce358f401c0ca1c1545f953e97f5b9e6141957 TEMPFIX
53897253372ba58cbe113cef3a29c54163db8eca TMPHACK
04e4cc83ab5b1f293cc8bb086c10d6d1b03c9091 [DEBUG] Added more workers debug
f1793381beb9f60434c4b4177c1b3f4be7d60448 [DEBUG][IMPORTANT] Add some debug messages to receive_from_workers
aabc74edd7823b0ba977a781bd26266a66552177 HOTFIX: Teachers & forum
62e9fe2ded38323db451c35e444ff6d7496f7b1e Uncommited changes
1c2d21c14223dd1008a48169d8bf77b5f2e26a06 [HOTFIX] Some localchanges to sharingcli on Szkopuł
82896619f41cc73fc0d0c26b1426e193cb077b91 [HOTFIX] Remove oi dependency from participants migration

Aktualizacja na podstawie emaila od Pawła Dietricha (2022-03-14):

wydaje się, że następujące zmiany można dodać do mastera:

bc92854a40cdf5a0fa46ccac03d51f36eb246b6c
9f5843072dad127840dc27ed03d22b9028304854
e86d89707e118a934ea7800e09572da4b066f023
00a2e301caab91ce94e6eb73b2e0cebe6029a6a1
a8df27c215923fe175c1e92f7e76e02b9464e1a9
b47a36a71c9c3ac56d151c44c705cd04156adb4c
dc4a0637a8a17d04290c9aea1eef2012b0e24f0a


 Comments   
Comment by Tomek Waleń [ 2022-03-21 ]
hotfixes:

bc92854a40cdf5a0fa46ccac03d51f36eb246b6c
9f5843072dad127840dc27ed03d22b9028304854
e86d89707e118a934ea7800e09572da4b066f023
00a2e301caab91ce94e6eb73b2e0cebe6029a6a1
a8df27c215923fe175c1e92f7e76e02b9464e1a9
b47a36a71c9c3ac56d151c44c705cd04156adb4c
dc4a0637a8a17d04290c9aea1eef2012b0e24f0a

have been merged to main repo, see https://github.com/sio2project/oioioi/pull/53
Comment by Tomek Waleń [ 2022-04-13 ]
Uwagi (Patrycja Krzyna):

Potencjalnie można usunąć:
- [tmp] instrument The Queries for perf measure - jest z 2019 roku i jest tmp, nie brzmi jakby było jeszcze komuś potrzebne
- [HOTFIX] Remove oi dependency from participants migration - przy deployowaniu i tak aplikują się tylko nowe migracje, a przy stawianiu szkopuła od nowa migracje i tak kompletnie nie działają, więc chyba ten commit nic nie zmienia (ewentualnie jest bardzo niepoprawny)
- [TEMPFIX] Print where the empty controller hack is needed - z 2019, print debugowy, prawdopodobnie nikt już tego nie śledzi
- [DEBUG][IMPORTANT] Add some debug messages to receive_from_workers - jest to z 2018 roku, wiec szczerze wątpię, że ktos zamierza zrobić ten debug
- [DEBUG] Added more workers debug - jak wyżej



Wielka niewiadoma:
- Uncommited changes - dziwne losowe zmiany, w tym w sposobie oceniania zadań; ze względu na if True i nazwę uncommited changes wydaje się, że może to wylądowało wśród tych commitow przypadkiem
- TMPHACK - hardkoduje limit pamięci (env['ingen_mem_limit']) na 512MB; brzmi podejrzanie, ale chyba byłabym skłonna to usunąć
- Added Main importer - ktoś tego jeszcze używa? Czy to przeszkadzałoby na sio?
- [PRODFIX] Change oioioi/notifications/server/npm-shrinkwrap.json - nie bardzo rozumiem, co to robi
- (temporary) Allow lorys to manage packages inside his contest - czy to naprawdę jest zahardkodowanie uprawnień dla konkretnego użytkownika dla konkretnego contestu...?



Potencjalnie mozna zmergować:
- HOTFIX: Teachers & forum - chyba to tworzy forum na contestach robionych przez nauczycieli
- [DEBUG] Added more workers debug - jak wyżej
- Add command for finding SE submissions. - jakieś sensowne zmiany
- TEMPFIX - dodaje przycisk do kopiowania rozwiązań
- (to-master) usercontests should not be public - nie powinno w ogóle dotknąć sio, bo tam nie ma takich contestów
- PRODFIX set c++17 for non-makefile sinol packages - wydaje się niezbyt groźne
- Add a command for gathering submissions statistics. - również sensowne zmiany
- Add decoding to HTML problem statements. - jakaś drobna zmiana, też nie wygląda, jakby mogła wybuchnąć sio
Comment by Tomek Waleń [ 2022-04-25 ]
moje uwagi:
- HOTFIX: Teachers & forum - chyba to tworzy forum na contestach robionych przez nauczycieli
OK

- [DEBUG] Added more workers debug - jak wyżej
OK

- Add command for finding SE submissions. - jakieś sensowne zmiany
OK

- TEMPFIX - dodaje przycisk do kopiowania rozwiązań
OK (ale tam jest tez coś o javascript_catalog a to juz chyba jest)

- (to-master) usercontests should not be public - nie powinno w ogóle dotknąć sio, bo tam nie ma takich contestów
OK

- PRODFIX set c++17 for non-makefile sinol packages - wydaje się niezbyt groźne
OK, ale coś trzeba zrobić z settings_global tam dalej jest GCC 4.8

- Add a command for gathering submissions statistics. - również sensowne zmiany
OK

- Add decoding to HTML problem statements. - jakaś drobna zmiana, też nie wygląda, jakby mogła wybuchnąć sio
OK chociaz nie bardzo rozumiem, jak takie pliki z bledami mają się poprawnie wyświetlić




[SIO-2485] Adding SmartJudge -- possibility of judging only tests that affect score Created: 2022-03-9  Updated: 2022-03-9

Status: New
Project: The SIO2 project
Component/s: OIOIOI
Affects Version/s: TAG 2021/22 Summer Sprint 1
Fix Version/s: None

Type: Improvement Priority: Minor
Reporter: Joanna Wojciechowska Assignee: Joanna Wojciechowska
Resolution: Unresolved Votes: 0
Labels: None


 Description   
SmartJudge is a tool implemented by Karol Farbis on SIO2 staszic (https://github.com/InformatykaNaStart/staszic-sio2). It allows to set a mode where only essential tests are judged, so when one of the tests is not OK, all other tests in given package are ignored.




[SIO-2483] Mitigate possibility of input data tasks leaks Created: 2022-03-2  Updated: 2022-03-16

Status: New
Project: The SIO2 project
Component/s: OIOIOI
Affects Version/s: TAG 2021/22 Summer Sprint 1
Fix Version/s: None

Type: Improvement Priority: Major
Reporter: Tomek Waleń Assignee: Mieszko Grodzicki
Resolution: Unresolved Votes: 0
Labels: None

Attachments: File sorchk.cpp    
Sprint: TAG 2021/22 Summer Sprint 1

 Description   
Mitategate possibility of leaking input data for tasks with full-feedback.
During Algorithms & Data structure exams it happened few times that students leaked input data for tests using printing tests.

Workaround (used during one exam): custom checker that limits verbosity of wrong answer result (see attached sorchk.cpp)

Dwie możliwe (i łatwe do wprowadzenia) opcje:
  1. Uczestnik wcale nie widzi komentarzy do testów z wynikiem WA.
  2. Uczestnik widzi komentarze do testów z wynikiem WA, ale ucięte bardziej niż obecnie (np. do 80 znaków).
Poza tym pozostają dwa pytania:
  - Czy powinno to być ustawienie dotyczące contestu, czy rundy? Jako ustawienie pojedynczego zadania raczej nie ma sensu (główne potencjalne zastosowanie to kolokwia, egzaminy, sprawdziany, gdzie ukrywanie komentarzy dotyczy wszystkich zadań).
  - Czy ukrywanie powinno dotyczyć tylko czasu trwania rundy (jeżeli byłoby to ustawienie rundy), czy powinno być aktywne aż do wyłączenia przez administratora contestu?




[SIO-2482] Add option for contest configuration to ignore invalid submissions Created: 2022-02-28  Updated: 2022-02-28

Status: New
Project: The SIO2 project
Component/s: OIOIOI
Affects Version/s: TAG 2021/22 Summer Sprint 1
Fix Version/s: None

Type: Improvement Priority: Major
Reporter: Tomek Waleń Assignee: Unassigned
Resolution: Unresolved Votes: 0
Labels: None

Sprint: TAG 2021/22 Summer Sprint 1

 Description   
Add option for contest configuration (i.e. Olimpiada Informatyczna), such that:

As a contestant I would like to avoid situation when submitting wrong file cancels my score for already solved task (i.e. if by mistake I submit solution for task A as a solution for task B).

Such situation happens rarely (but it happens) during OI contests (for example it happened once this year in Feb 2022).

Possible solutions:
- ignore in ranking solutions that does not pass example tests
- use in the ranking last solution that pass example tests (tests that are included in the task description)
- [SPECIAL CASE] if for some task there are no solutions that pass example tests then use in ranking last submitted solution




[SIO-2481] Store author's information about packages Created: 2022-02-8  Updated: 2022-02-8

Status: New
Project: The SIO2 project
Component/s: OIOIOI
Affects Version/s: Current Version
Fix Version/s: None

Type: Improvement Priority: Minor
Reporter: Bartosz Kostka Assignee: Unassigned
Resolution: Unresolved Votes: 1
Labels: None


 Description   
In main (no. 1) it was possible to specify problem's author. We should add this metadata to the package's config and parse it in oioioi.




[SIO-2480] Translation of default iomode in sinol.cls file is not working Created: 2022-02-8  Updated: 2022-02-8

Status: New
Project: The SIO2 project
Component/s: Translations
Affects Version/s: Current Version
Fix Version/s: None

Type: Bug Priority: Minor
Reporter: Stanisław Strzelecki Assignee: Unassigned
Resolution: Unresolved Votes: 0
Labels: None


 Description   
In /oioioi/sinolpack/files there is a sinol.cls file.
When used in task statements, it has a default iomode (\iomode{files}).
It does not update translations of example input/output texts, making them always polish.

PS: Moving the line to the bottom might fix the issue.
PSS: Should files really be the default iomode?
PSSS: And should we really use 8 years old sinol.cls file? There are surely newer versions around in use.




[SIO-2477] simplify deployment Created: 2022-01-11  Updated: 2022-02-28

Status: New
Project: The SIO2 project
Component/s: SIO2 Project Website and Infrastructure
Affects Version/s: TAG 2021/22 Winter Sprint
Fix Version/s: None

Type: Improvement Priority: Major
Reporter: Tomek Waleń Assignee: Unassigned
Resolution: Unresolved Votes: 0
Labels: None


 Description   
Currently deployment requires:
- manual patching of master branch with custom list of commits
- using external scripts
- is not documented well

Goals:
- all patches are included in master branch (and possibly turned on/off by settings)
- scripts are includes in the repo
- there exists some documentation for the process





[SIO-2476] migrate from python 3.6 to 3.7 or 3.8 Created: 2022-01-11  Updated: 2022-02-28

Status: New
Project: The SIO2 project
Component/s: OIOIOI
Affects Version/s: TAG 2021/22 Winter Sprint
Fix Version/s: None

Type: Bug Priority: Major
Reporter: Tomek Waleń Assignee: Unassigned
Resolution: Unresolved Votes: 0
Labels: None

Sprint: TAG 2021/22 Summer Sprint 1

 Description   
Support for python 3.6 ended on 23 Dec 2021.




[SIO-2470] Race condition in ranking creation Created: 2021-12-29  Updated: 2022-04-11

Status: New
Project: The SIO2 project
Component/s: OIOIOI
Affects Version/s: TAG 2021/22 Winter Sprint
Fix Version/s: None

Type: Bug Priority: Major
Reporter: Tomek Waleń Assignee: Unassigned
Resolution: Unresolved Votes: 0
Labels: None
Environment: szkopul.edu.pl


 Description   
Sometimes, the same user is enlisted twice in the ranking. See attached screenshot.

 Comments   
Comment by Paweł Dietrich [ 2022-01-2 ]
@Tomek Waleń. Skasowałem screenshota, ponieważ były na nim dane osobowe.

Skoro już komentuję, to już się kiedyś spotkałem z tym problemem. Ogólnie w oioioi jest dość dużo race conditionów i bugów TOCTOU. Wydaje się, że akurat TOCTOU można naprawić przy pomocy transations.atomic(). Race conditiony wynikające z równoległego działania wielu części kodu wymagają więcej uwagi i pomysłu. Z drugiej strony mamy trochę tych programów w oioioi, które działają sobie w tle i pamiętam, że raz przez przypadek uruchomiliśmy rankingsd dwa razy i wtedy też się ranking popsuł. Z punktu widzenia HA takie ograniczenia przeszkadzają i w wypadku przeprojektowania rankingów warto o tym pomyśleć.
Comment by Tomek Waleń [ 2022-04-11 ]
na szkopule pojawił się następujący hotfix:
```
iff --git a/oioioi/rankings/controllers.py b/oioioi/rankings/controllers.py
index aec61f24..ed36bda9 100644
--- a/oioioi/rankings/controllers.py
+++ b/oioioi/rankings/controllers.py
@@ -390,7 +390,8 @@ class DefaultRankingController(RankingController):
             .select_related('problem')
             .prefetch_related('round')
         )
- users = self.filter_users_for_ranking(key, User.objects.all())
+ users = self.filter_users_for_ranking(key, User.objects.all()).distinct()
         results = (
             UserResultForProblem.objects.filter(
                 problem_instance__in=pis, user__in=users
```




[SIO-2469] List of rounds for specific contest Created: 2021-12-11  Updated: 2022-12-12

Status: New
Project: The SIO2 project
Component/s: OIOIOI
Affects Version/s: Current Version
Fix Version/s: None

Type: Improvement Priority: Major
Reporter: Aleksey Ropan Assignee: Unassigned
Resolution: Unresolved Votes: 0
Labels: None


 Description   
Query https://sio2.mimuw.edu.pl/c/pa-2021-1/status/ returns information about one round (current or future) only. Can you add a list of rounds for a specific contest with times information?

I want to create automatic export contests and rounds to clist.by.

 Comments   
Comment by Aleksey Ropan [ 2022-12-12 ]
Maybe it's already fixed or is there an update?




[SIO-2468] Bycie anonimowym nie robi cię anonimowym Created: 2021-12-9  Updated: 2022-03-17

Status: New
Project: The SIO2 project
Component/s: SIO2 Project Website and Infrastructure
Affects Version/s: Current Version
Fix Version/s: None

Type: Improvement Priority: Minor
Reporter: Tomasz Nowak Assignee: Kacper Lewandowski
Resolution: Unresolved Votes: 0
Labels: None

Sprint: TAG 2021/22 Summer Sprint 1

 Description   
Obecnie istnieje możliwość "anonimowego" uczestnictwa w konkursie. Polega ona na zastąpieniu imienia i nazwiska uczestnika jego loginem w rankingu.

Nie jest to rzeczywista anonimowość - login może zawierać fragmenty nazwiska, być znany dla kolegów itd.

Ponadto, opcja ta jest niedostępna w większości konkursów.



Możliwym rozwiązaniem jest używanie ustalonego ciągu znaków ("???", "anonimowy" itd) w miejsce loginu.
(Można by też takich uczestników wcale nie pokazywać w publicznym rankingu, przy czym wydaje się to rozwiązaniem bardzo niekorzystnym.)


Kwestie do rostrzygnięcia:
  1. Czy nowa wersja powinna zastąpić dotychczasową, czy istnieć równolegle do niej (do wyboru dla administratora pomiędzy brakiem anonimowości / loginem / "???")
  2. Jak powinno wyglądać zarządzanie tym ustawieniem - np. ustalone w typie konkursu (tak jak obecnie) lub możliwe do modyfikacji w ustawieniach konkursu (ewentualnie wartości domyślne dla danego serwera)


Dla zachowania zgodności ze stanem obecnym sensowne wydaje się wprowadzenie tej zmiany jako nowej opcji per konkurs, która nadpisywałaby dotychczasowe zachowanie.




 Comments   
Comment by Tomasz Nowak [ 2021-12-9 ]
Przykład: https://sio2.mimuw.edu.pl/c/pa-2021-1/ranking/

W rankingu widać użytkownia "apiad". Od razu wiadomo, że to jest tak naprawdę Xiuhan Wang i że cię totalnie rozwali podczas contestu.
Comment by Tomasz Nowak [ 2021-12-9 ]
Wcześniej też był k_walentynowicz w rankingu, ale teraz już jest po prostu Kacper Walentynowicz. Pewnie stwierdził, że ta opcja anonimowości jest tak beznadziejna, że już lepiej jest pokazywać swoje imię i nazwisko.
Comment by Przemysław Podleśny [ 2021-12-16 ]
Więcej nawet, "anonimowi" użytkownicy, którzy zremisowali wynikiem z innymi, razem z nimi są sortowani po nazwisku, więc gdyby ktoś miał jakąś wątpliwość co do tego, kto ukrywa się pod danym pseudonimem, może ją w ten sposób rozwiać ostatecznie :)
Comment by Paweł Dietrich [ 2022-03-17 ]
> Możliwym rozwiązaniem jest używanie ustalonego ciągu znaków ("???", "anonimowy" itd) w miejsce loginu.

Jeżeli chcemy używać ciągu znaków to należy to graficznie odróżnić od zwykłego loginu/Danych zawodnika. Jedną z opcji, ale chyba słabą jest wyświetlanie pustego pola. Cokolwiek zostanie wybrane powinno być szeroko przemyślane od strony UI i UX.

> 1. Czy nowa wersja powinna zastąpić dotychczasową, czy istnieć równolegle do niej

Potrzebujemy mieć wsteczną kompatybilność do starych contestów (W sensie akcpetujemy jak w starych contestach pojawi się zawodnik anomiowy czy inny tekst zamiast loginu). A można rozważyć, aby nowe contesty uzywały właśnie tej nowej formy anonimizacji.

> 2. Jak powinno wyglądać zarządzanie tym ustawieniem

Pewnie najlepiej Default w kontrolerze i override w ustawieniach konkursu.




[SIO-2467] Bulk move problems between contests Created: 2021-11-28  Updated: 2021-11-28

Status: New
Project: The SIO2 project
Component/s: OIOIOI
Affects Version/s: Near Future
Fix Version/s: None

Type: New Feature Priority: Major
Reporter: Bartłomiej Chmiel Assignee: Unassigned
Resolution: Unresolved Votes: 0
Labels: None


 Description   
Currently it is possible to move problems on one by one basis. New feature will allow to select and move problems from one contest to another all at once.

This will speed up contest creation when some of the problems are reused.




[SIO-2466] Participation in contest without being visible in Ranking Created: 2021-11-28  Updated: 2021-11-28

Status: New
Project: The SIO2 project
Component/s: OIOIOI
Affects Version/s: Near Future
Fix Version/s: None

Type: New Feature Priority: Major
Reporter: Bartłomiej Chmiel Assignee: Unassigned
Resolution: Unresolved Votes: 0
Labels: None


 Description   
We heard that some participants are "afraid" to participate because their result will be visible on the public Ranking list.

This feature will allow less confident participants to take part in contest without exposing their results to their colleagues.




[SIO-2465] Limiting visibility of Ranking list Created: 2021-11-28  Updated: 2021-11-28

Status: New
Project: The SIO2 project
Component/s: OIOIOI
Affects Version/s: Near Future
Fix Version/s: None

Type: New Feature Priority: Major
Reporter: Bartłomiej Chmiel Assignee: Unassigned
Resolution: Unresolved Votes: 0
Labels: None


 Description   
Setting visibility of Ranking list for particular contest, depending on admin's choice.

Visibility modes:
- hidden
- visible to teacher only
- visible




[SIO-2463] Incomplete support for quiz problems Created: 2021-11-23  Updated: 2022-01-28

Status: New
Project: The SIO2 project
Component/s: OIOIOI
Affects Version/s: TAG 2021/22 Winter Sprint
Fix Version/s: None

Type: Bug Priority: Minor
Reporter: Mieszko Grodzicki Assignee: Joanna Wojciechowska
Resolution: Unresolved Votes: 0
Labels: None


 Description   
* "Add a quiz", "Quiz name" are not translated into Polish.
* It is possible to enable reveals for a quiz problem, but then trying to open submission page results in RelatedObjectDoesNotExist exception.

 Comments   
Comment by Gerrit Gerrit [ 2021-12-7 ]
Change oioioi~master~Ic5010d2015e58020c3bf8a86ae363e65864a7d73, patchset 1
https://gerrit.sio2project.mimuw.edu.pl/3791

SIO-2463 Added translations and bug fixed

Change-Id: Ic5010d2015e58020c3bf8a86ae363e65864a7d73
Comment by Gerrit Gerrit [ 2021-12-7 ]
Change oioioi~master~I54c646f781271099fa1fd31ed7b09dd105969d48, patchset 1
https://gerrit.sio2project.mimuw.edu.pl/3792

SIO-2463 Incomplete support for quiz problems All the translations in .po file added and bug: "trying to open submission page results in RelatedObjectDoesNotExist exception"

Change-Id: I54c646f781271099fa1fd31ed7b09dd105969d48
Comment by Gerrit Gerrit [ 2021-12-9 ]
Change oioioi~master~Iaa1c0607281f49f303e90f70aaefba2721752595, patchset 1
https://gerrit.sio2project.mimuw.edu.pl/3793

SIO-2463 Incomplete support for quiz problems Bug: "trying to open submission page results in RelatedObjectDoesNotExist exception"

Change-Id: Iaa1c0607281f49f303e90f70aaefba2721752595
Comment by Gerrit Gerrit [ 2022-01-24 ]
Change oioioi~master~Iaa1c0607281f49f303e90f70aaefba2721752595, patchset 2
https://gerrit.sio2project.mimuw.edu.pl/3793

SIO-2463 Incomplete support for quiz problems Bug: "trying to open submission page results in RelatedObjectDoesNotExist exception"

Change-Id: Iaa1c0607281f49f303e90f70aaefba2721752595
Comment by Gerrit Gerrit [ 2022-01-24 ]
Change oioioi~master~I589b80ec4ff4f56763ac87834e03e1eff7085558, patchset 1
https://gerrit.sio2project.mimuw.edu.pl/3806

ProgrammingContestController.mix_in(ScoresRevealContestControllerMixin) SIO-2463 Incomplete support for quiz problems Tests for quizzes changed -- Submission.objects.get() replaced with QuizSubmission.objects.get(). Testing the bug added -- trying to submit quiz and then reveal it. Whitespaces from oioioi/contests/models.py deleted.

Change-Id: I589b80ec4ff4f56763ac87834e03e1eff7085558
Comment by Gerrit Gerrit [ 2022-01-24 ]
Change oioioi~master~I589b80ec4ff4f56763ac87834e03e1eff7085558, patchset 2
https://gerrit.sio2project.mimuw.edu.pl/3806

SIO-2463 Incomplete support for quiz problems Tests for quizzes changed -- Submission.objects.get() replaced with QuizSubmission.objects.get(). Testing the bug added -- trying to submit quiz and then reveal it. Whitespaces from oioioi/contests/models.py deleted.

Change-Id: I589b80ec4ff4f56763ac87834e03e1eff7085558
Comment by Gerrit Gerrit [ 2022-01-28 ]
Change oioioi~master~I589b80ec4ff4f56763ac87834e03e1eff7085558, patchset 3
https://gerrit.sio2project.mimuw.edu.pl/3806

SIO-2463 Incomplete support for quiz problems Tests for quizzes changed -- Submission.objects.get() replaced with QuizSubmission.objects.get(). Testing the bug added -- trying to submit quiz and then reveal it. Whitespaces from oioioi/contests/models.py deleted.

Change-Id: I589b80ec4ff4f56763ac87834e03e1eff7085558




[SIO-2459] Resolve "Stop using CDNs" Github issue Created: 2021-10-31  Updated: 2022-01-10

Status: Open
Project: The SIO2 project
Component/s: OIOIOI
Affects Version/s: Current Version
Fix Version/s: None

Type: Task Priority: Major
Reporter: Paweł Dietrich Assignee: Paweł Dietrich
Resolution: Unresolved Votes: 0
Labels: None


 Description   
In sio2 we use local copy of mathjax. We should document how to set mathjax source for the browsers and close the issue (https://github.com/sio2project/oioioi/issues/44).

 Comments   
Comment by Paweł Dietrich [ 2021-11-15 ]
I found some time and found instructions how to build mathjax
http://docs.mathjax.org/en/latest/web/hosting.html
We should make sure the link is in the `settings.py` to point someone
how to serve local copy of mathjax for offline installations.
Also cloudflare does not ship 2.7.9 and mathjax.org recommends
https://cdn.jsdelivr.net/npm/mathjax@2/MathJax.js
which fetches latest 2.x version




[SIO-2458] Unhelpful compiller configuration error messages Created: 2021-10-29  Updated: 2021-11-24

Status: New
Project: The SIO2 project
Component/s: OIOIOI
Affects Version/s: Current Version
Fix Version/s: None

Type: Improvement Priority: Minor
Reporter: Paweł Dietrich Assignee: Patrycja Krzyna
Resolution: Unresolved Votes: 0
Labels: None


 Description   
Currently we enforce some structure on *_COMPILERS in settings.py, but when structure is invalid we raise ImproperlyConfigured error without telling what is invalid, which makes changing the config more challenging.




[SIO-2455] Podgląd wyników zgłoszenia bez odświeżania strony Created: 2021-10-27  Updated: 2022-05-9

Status: New
Project: The SIO2 project
Component/s: OIOIOI
Affects Version/s: TAG 2021/22 Winter Sprint
Fix Version/s: None

Type: Improvement Priority: Major
Reporter: Tomek Waleń Assignee: Unassigned
Resolution: Unresolved Votes: 0
Labels: None


 Description   
Obsługa dynamicznych stron WWW dla strony moje zgłoszenia. Odświeżanie w tle listy i statusów submittów.

Coś podobnego jest serwerze Staszicowym.

Być może to jest za duże:
- można ograniczyć do tylko wyświetlania informacji "są nowe dane odśwież stronę"
- inne temat to synchronizacja zegara (czas do końca konkursu) - bez odświeżania strony potrafi się rozjechać o kilka minut




[SIO-2453] Dark mode Created: 2021-10-27  Updated: 2021-11-17

Status: New
Project: The SIO2 project
Component/s: OIOIOI
Affects Version/s: TAG 2021/22 Winter Sprint
Fix Version/s: None

Type: Improvement Priority: Major
Reporter: Adam Al-Hosam Assignee: Unassigned
Resolution: Unresolved Votes: 0
Labels: None


 Description   
Dodanie możliwości zmiany motywu kolorystycznego na ciemniejszy/mniej męczący wzrok.

Potrzebny:
- projekt UI do zmiany trybu dzienny/nocny
- jak mają wyglądać nowe kolory
- ustalić kto musi zaakceptować nowe kolory (poza TAG)
- uzyskać akceptację nowej kolorystyki




[SIO-2451] Uporządkowanie ustawień sklonowanych zadań Created: 2021-10-27  Updated: 2021-10-27

Status: New
Project: The SIO2 project
Component/s: OIOIOI
Affects Version/s: TAG 2021/22 Winter Sprint
Fix Version/s: None

Type: Improvement Priority: Major
Reporter: Tomek Waleń Assignee: Unassigned
Resolution: Unresolved Votes: 0
Labels: None


 Description   
- cześć ustawień jest lokalnie per konkurs
- część globalnie na cały system
- usuwanie załączników




[SIO-2450] Prirytetowanie zgłoszeń do sprawdzania Created: 2021-10-27  Updated: 2021-10-27

Status: New
Project: The SIO2 project
Component/s: Evaluation Engine / Workers
Affects Version/s: TAG 2021/22 Winter Sprint
Fix Version/s: None

Type: Improvement Priority: Major
Reporter: Tomek Waleń Assignee: Unassigned
Resolution: Unresolved Votes: 0
Labels: None


 Description   
możliwość szybszego sprawdzenia wybranych zgłoszeń




[SIO-2449] Symulator konkurs treningu Created: 2021-10-27  Updated: 2021-11-17

Status: New
Project: The SIO2 project
Component/s: OIOIOI
Affects Version/s: TAG 2021/22 Winter Sprint
Fix Version/s: None

Type: Improvement Priority: Major
Reporter: Tomek Waleń Assignee: Unassigned
Resolution: Unresolved Votes: 0
Labels: None


 Description   
- przycisk replay dla istniejącego konkursu (np. wirtualny II etap czy egzamin)
- zwłaszcza istotne dla konkursów bez full-feedback
- codeforces ma coś podobnego




[SIO-2448] Webowy manager zadań Created: 2021-10-27  Updated: 2021-10-27

Status: New
Project: The SIO2 project
Component/s: OIOIOI
Affects Version/s: TAG 2021/22 Winter Sprint
Fix Version/s: None

Type: Improvement Priority: Major
Reporter: Tomek Waleń Assignee: Unassigned
Resolution: Unresolved Votes: 0
Labels: None


 Description   
- żeby można było łatwo wyszukiwać zadania
- żeby można było łatow kopiować pomiędzy konkursami
- żeby można było dodawać dokumentację do zadań
- żeby można było wersjonować paczki




[SIO-2446] Duplicate contest problems Created: 2021-09-25  Updated: 2021-09-25

Status: New
Project: The SIO2 project
Component/s: OIOIOI
Affects Version/s: Current Version
Fix Version/s: None

Type: Improvement Priority: Minor
Reporter: Alicja Kluczek Assignee: Unassigned
Resolution: Unresolved Votes: 0
Labels: None


 Description   
Say you conduct lessons in 2 groups and you want to have the same problems in both contests, but manually copying all problems is annoying. It would be nice to have a button "duplicate contest"




[SIO-2445] Dupli(Multi-)plicates of the same participants in the ranking Created: 2021-09-19  Updated: 2021-09-19

Status: New
Project: The SIO2 project
Component/s: OIOIOI
Affects Version/s: Current Version
Fix Version/s: None

Type: Bug Priority: Major
Reporter: Alicja Kluczek Assignee: Unassigned
Resolution: Unresolved Votes: 0
Labels: None


 Description   
Participants are displayed multiple times despite using one account:
1 Jan Ni 100 100 200
1 Jan Ni 100 100 200
1 Jan Ni 100. 100 200 https://szkopul.edu.pl/c/zadankasrednie/ranking/ for example in this contest, but I've seen it multiple times.




[SIO-2444] Compiller override form bricks on error Created: 2021-09-7  Updated: 2021-09-7

Status: New
Project: The SIO2 project
Component/s: OIOIOI
Affects Version/s: Current Version
Fix Version/s: None

Type: Bug Priority: Major
Reporter: Paweł Dietrich Assignee: Unassigned
Resolution: Unresolved Votes: 0
Labels: None
Environment: Szkopuł/Master


 Description   
How to reproduce:
1. Create a new contest
2. Create compiller override
3. Make error in other part of the form (for example in empty end date)
4. Submit form
5. When errors are rendered compiller overrides are reset since language is not selected, but in <select> it is.




[SIO-2443] Output of checker is inserted to the database as is Created: 2021-07-3  Updated: 2021-10-31

Status: New
Project: The SIO2 project
Component/s: Evaluation Engine / Workers
Affects Version/s: Current Version
Fix Version/s: None

Type: Bug Priority: Major
Reporter: Paweł Dietrich Assignee: Unassigned
Resolution: Unresolved Votes: 0
Labels: None


 Description   
We should escape some of checker's output. For example if checker outputs `0x00` then python throws `ValueError: A string literal cannot contain NUL (0x00) characters.`

Real example: https://sio2.mimuw.edu.pl/c/ontak2021/s/456709/




[SIO-2441] Add hyperlink to "Paczkomat" Created: 2021-05-18  Updated: 2022-02-28

Status: Open
Project: The SIO2 project
Component/s: SIO2 Project Website and Infrastructure
Affects Version/s: Current Version
Fix Version/s: None

Type: Improvement Priority: Major
Reporter: Jakub Niściór Assignee: Unassigned
Resolution: Unresolved Votes: 0
Labels: None

Sprint: TAG 2020/21 Summer Sprint 2

 Description   
Add hyperlink to "Paczkomat" to view associated with problem instance.




[SIO-2439] Check difficulty of deployment of SIO2 and simplify it Created: 2021-05-17  Updated: 2021-05-17

Status: New
Project: The SIO2 project
Component/s: OIOIOI
Affects Version/s: Current Version
Fix Version/s: None

Type: Task Priority: Minor
Reporter: Jakub Niściór Assignee: Jakub Niściór
Resolution: Unresolved Votes: 0
Labels: None
Environment: Linux


 Description   
SIO2 is hard to deploy. Easy installer is not really easy (it throws loads of errors and finally doesn't install SIO2 properly.

1. Try to deploy SIO2 on local machine with minimal working configuration.
2. Simplify deployment (probably modify the readme).

 Comments   
Comment by Gerrit Gerrit [ 2021-05-17 ]
Change oioioi~master~Ib84f3f2b8f3205eb3b579a081281926767963b4b, patchset 1
https://gerrit.sio2project.mimuw.edu.pl/3721

SIO-2439 Improve readme concerning deployment

- Delete part about easy installer (it desn't work)
- Other minor readme fixes

Change-Id: Ib84f3f2b8f3205eb3b579a081281926767963b4b




[SIO-2438] Szkopuł and SIO2 try to insert non-unique job_id to evalmgr_queuedjob Created: 2021-05-15  Updated: 2021-05-15

Status: New
Project: The SIO2 project
Component/s: Evaluation Engine / Workers, OIOIOI
Affects Version/s: Current Version
Fix Version/s: None

Type: Bug Priority: Major
Reporter: Paweł Dietrich Assignee: Unassigned
Resolution: Unresolved Votes: 0
Labels: None

Attachments: HTML File jira    

 Description   
Look at database logs attached below.




[SIO-2437] NOTIFICATIONS_SERVER_ENABLED setting is confusing Created: 2021-05-15  Updated: 2021-05-15

Status: New
Project: The SIO2 project
Component/s: OIOIOI
Affects Version/s: Current Version
Fix Version/s: None

Type: Bug Priority: Major
Reporter: Paweł Dietrich Assignee: Unassigned
Resolution: Unresolved Votes: 0
Labels: None


 Description   
NOTIFICATIONS_SERVER_ENABLED only tells supervisord whether to start notification-server. However, at first glance, it is not clear what does NOTIFICATIONS_SERVER_ENABLED means:
- Will it start notification server?
- Will oioioi connect to provided server details but not spawn a notification server?
- Will oioioi not connect to any notification server?




[SIO-2435] Allow custom sorting of the list of problems /p/ Created: 2021-05-15  Updated: 2021-05-15

Status: New
Project: The SIO2 project
Component/s: OIOIOI
Affects Version/s: Current Version
Fix Version/s: None

Type: Improvement Priority: Minor
Reporter: Paweł Dietrich Assignee: Unassigned
Resolution: Unresolved Votes: 0
Labels: None

Attachments: PNG File Screenshot_20210515_101719.png    

 Description   
Sometimes alphabetical order is not desired and current workaround is changing problem_instance id, which is not perfect either




[SIO-2433] Enable localization for dates, times and numbers Created: 2021-05-13  Updated: 2021-11-17

Status: New
Project: The SIO2 project
Component/s: OIOIOI
Affects Version/s: Near Future
Fix Version/s: None

Type: Improvement Priority: Trivial
Reporter: Szymon Czyżmański Assignee: Unassigned
Resolution: Unresolved Votes: 0
Labels: tag1


 Description   
Currently:
- all dates are presented in ISO format

Expected behaviour:
- show date in format described by locale setting (i.e. in https://en.wikipedia.org/wiki/Date_and_time_notation_in_the_United_States)




[SIO-2431] Improve add_js function workaround Created: 2021-05-10  Updated: 2021-05-10

Status: New
Project: The SIO2 project
Component/s: OIOIOI
Affects Version/s: Near Future
Fix Version/s: None

Type: Improvement Priority: Minor
Reporter: Hubert Badocha Assignee: Unassigned
Resolution: Unresolved Votes: 0
Labels: None


 Description   
add_js method on Media object was used in method get_compiler_for_language in oioioi/programs/controllers.py but it was removed without any notice in django 2.0 current workaround is a bit hacky and uses private api

 Comments   
Comment by Gerrit Gerrit [ 2021-05-10 ]
Change oioioi~python3~I66f362d0c3d688cd689ef703c431d5241c5e3b7e, patchset 7
https://gerrit.sio2project.mimuw.edu.pl/3660

Django2 support breaking changes.

Changed dependecies.
Made a workaround for lack of 'add_js' function https://jira.sio2project.mimuw.edu.pl/browse/SIO-2431.
Removed redundant apps from settings.
Removed last urlresolvers import.
Changed include to new syntax.
Removed context parameter from from_db_value.
Removed non-timezone-aware methods.

Change-Id: I66f362d0c3d688cd689ef703c431d5241c5e3b7e




[SIO-2422] Make technical details of contests and problems available for users Created: 2021-04-13  Updated: 2022-02-28

Status: New
Project: The SIO2 project
Component/s: OIOIOI
Affects Version/s: Near Future
Fix Version/s: TAG 2020/21 Summer Sprint 2

Type: Improvement Priority: Minor
Reporter: Jakub Wasilewski Assignee: Unassigned
Resolution: Unresolved Votes: 0
Labels: None

Sprint: TAG 2020/21 Summer Sprint 2

 Description   
Contest wide technical information like how points are calculated, compiler version or whether last or best submission counts are hard to access.

Problem wide technical information like available languages, compilation commands lines, code size limit etc. are also rather unavailable.

The goal of this issue is to make those information available and easy to find

 Comments   
Comment by Gerrit Gerrit [ 2021-06-7 ]
Change oioioi~master~Ic729880e8e4fccfadd15753233f27cf1d35f06cc, patchset 1
https://gerrit.sio2project.mimuw.edu.pl/3754

(SIO-2422) Make technical details of contest publicly visible.

This feature has been requested by Polish Olympiad in Informatics.

Display contest technical settings on the contest's dashboard.
Previously this information was available only in the controller's
source code, which made it tedious to check.

The information shown on the dashboard:
* Available programming languages,
        * Execution mode (CPU/sio2jail),
        * Compilers and libraries versions,
        * Scoring methods
- Single test scoring,
- Test group scoring,
- Which submission is treated as definitive (LAST/MAX/MAX_REVEALED).
Methods have link to the wiki, where in the near future will be placed
their descriptions.

Change-Id: Ic729880e8e4fccfadd15753233f27cf1d35f06cc




[SIO-2417] Adding a problem which has model solution in language not available in contest controller crashes site Created: 2021-03-30  Updated: 2021-03-30

Status: New
Project: The SIO2 project
Component/s: OIOIOI
Affects Version/s: Current Version
Fix Version/s: None

Type: Bug Priority: Major
Reporter: Alicja Kluczek Assignee: Unassigned
Resolution: Unresolved Votes: 0
Labels: None


 Description   
Server gets assertion error when trying to retrieve compiler for the submission -- which doesn't exist, because contest controller overrides general compiler names.

Create contest controller with specified languages -- e.g. add
def get_allowed_language(self):
      return ['C']
to oioioi/oi/controller.py
Create a public task (you can use Sumżyce) with py solution.
Add to contest. Try adding to round (the site crashes just after clicking save) from basic problem form view. Voila.






[SIO-2413] Integrate export of test results for all submissions per problem Created: 2021-03-19  Updated: 2021-06-5

Status: New
Project: The SIO2 project
Component/s: OIOIOI
Affects Version/s: Current Version
Fix Version/s: None

Type: New Feature Priority: Trivial
Reporter: Bartosz Kostka Assignee: Alicja Kluczek
Resolution: Unresolved Votes: 0
Labels: None

Attachments: HTML File sio_export    

 Description   
We would like to be able to create a table with the following header:
- Submission id
- Contestant name
- Time of submission
- Language
- Score
- test0a status
...
- test 9z status
Apparently it is useful for jury. I made a sample script to do this (in attachment).




[SIO-2410] Unnecessary trimming whitespaces in test run view. Created: 2021-02-18  Updated: 2021-02-18

Status: New
Project: The SIO2 project
Component/s: OIOIOI
Affects Version/s: For the OI Team
Fix Version/s: None

Type: Bug Priority: Major
Reporter: Alicja Kluczek Assignee: Unassigned
Resolution: Unresolved Votes: 0
Labels: None





[SIO-2408] Enable deletion of questions in a quiz Created: 2021-01-27  Updated: 2021-11-24

Status: New
Project: The SIO2 project
Component/s: OIOIOI
Affects Version/s: Near Future
Fix Version/s: None

Type: Improvement Priority: Minor
Reporter: Szymon Czyżmański Assignee: Patrycja Krzyna
Resolution: Unresolved Votes: 0
Labels: None





[SIO-2406] Filetracker not connecting on docker on newest sio2 version Created: 2021-01-27  Updated: 2021-10-31

Status: New
Project: The SIO2 project
Component/s: Filetracker, OIOIOI, SIO2 Project Website and Infrastructure
Affects Version/s: Current Version
Fix Version/s: None

Type: Bug Priority: Critical
Reporter: Alicja Kluczek Assignee: Wojciech Dubiel
Resolution: Unresolved Votes: 0
Labels: None
Environment: docker-compose version 1.28.0, build unknown
Docker version 20.10.2, build 2291f610ae
kernel 5.10.10-arch1-1 27-01-2020

Attachments: Text File filetracker.log     PNG File sio2.png    

 Description   
Sio2 attempt to build using

OIOIOI_UID=$(id -u) docker-compose -f docker-compose-dev.yml -f extra/docker/docker-compose-dev-noserver.yml up -d
OIOIOI_UID=$(id -u) docker-compose -f docker-compose-dev.yml -f extra/docker/docker-compose-dev-noserver.yml exec web python manage.py runserver 0.0.0.0:8000

 Comments   
Comment by Paweł Dietrich [ 2021-03-1 ]
I fixed this issue on my computer by getting in the container during building of OIOIOI image

docker exec -it <container-id> bash

And adding web to the /etc/hosts

echo -e '127.0.0.1\tweb' | sudo tee -a /etc/hosts

Which allowed web to be resolved and upload sandbox files to the File Tracker
Comment by Paweł Dietrich [ 2021-10-31 ]
Related https://github.com/sio2project/oioioi/issues/46




[SIO-2405] Prioritize certain kinds of statuses when aggregating ACM-style test results Created: 2021-01-17  Updated: 2021-06-7

Status: New
Project: The SIO2 project
Component/s: Evaluation Engine / Workers
Affects Version/s: Current Version
Fix Version/s: None

Type: Improvement Priority: Major
Reporter: Wojciech Dubiel Assignee: Alicja Kluczek
Resolution: Unresolved Votes: 0
Labels: tag2


 Description   
In ACM-style contests, the user-visible result for a submit is "AC" when all tests pass, and some type of error status when one or more tests fail.

Currently, if multiple tests fail with different statuses, the "first" failure is shown.
Moreover, "first" is defined according to some internal order, different from the order visible in UI.

It'd be preferable if the status to display was chosen based on type of failure, and not order of tests.
For example, RE could take precedence over WA, then MLE, then TLE, etc.





Forum improvements (SIO-2266)

[SIO-2404] Allow markdown in posts Created: 2021-01-13  Updated: 2021-01-13

Status: New
Project: The SIO2 project
Component/s: OIOIOI
Affects Version/s: Current Version
Fix Version/s: TAG 2020/21 Winter Sprint

Type: Sub-task Priority: Major
Reporter: Jakub Moliński Assignee: Unassigned
Resolution: Unresolved Votes: 0
Labels: None

Sprint: TAG 2020/21 Winter Sprint

 Description   
1. Research our ability to easily and safely limit the scope of supported markdown features (if this is very hard then it may not be worth the hassle)

2. Implement the support for md in posts (scope: syntax highlighting...? to be decided)

Wojtek says that we may already be using markdown in some part of OIOIOI - reusing that would be useful.




[SIO-2398] Allow opening registration at a later date on contests with public registration Created: 2020-12-16  Updated: 2022-02-28

Status: New
Project: The SIO2 project
Component/s: OIOIOI
Affects Version/s: Current Version
Fix Version/s: TAG 2020/21 Winter Sprint

Type: Improvement Priority: Major
Reporter: Wojciech Dubiel Assignee: Unassigned
Resolution: Unresolved Votes: 0
Labels: tag2

Sprint: TAG 2020/21 Winter Sprint

 Description   
Contests such as PA and OI have a public registration form that any registered user can fill in to become a participant.

They can do this as soon as the contest is created, which leaves very little time for contest admins to configure the contest properly before someone registers.

There should be a registration start date, or an "enable registration" checbox, in the contest settings (including contest creation form), which contest admins can use to keep the registration closed until they're ready.




[SIO-2392] Exportszu times out Created: 2020-11-29  Updated: 2020-12-16

Status: New
Project: The SIO2 project
Component/s: OIOIOI
Affects Version/s: Current Version
Fix Version/s: None

Type: Bug Priority: Major
Reporter: Wojciech Dubiel Assignee: Unassigned
Resolution: Unresolved Votes: 0
Labels: tag2

Issue Links:
Duplicate
duplicates SIO-2144 "Export submissions" timing out with ... Reopened

 Description   
In large contests, generating an archive of every contestant's submissions takes a long time. Because the "export submissions" functionality does this synchronously, it causes a "504 gateway time-out" error before the archive is finished and ready for download.

One way to fix this would be to generate the arachive asynchronously, with a similar UX to generating user outs - you click once to generate the archive, and after a while, when the archive is done, you refresh the page and get a link to download the archive. In this case, care must be taken to keep track of when the archive was generated, as submissions created after that moment won't be included, and the user should be warned about this.

Another option would be to use a streaming response, so that the archive is being sent to the user as it's being generated. This could make the download slower than necessary, but at least the start of the response would arrive sooner, hopefully avoiding timeouts.

Yet another possibility is that this operation is slow for no good reason and could be made faster.




[SIO-2389] Show code in mobile is hard to scroll Created: 2020-11-19  Updated: 2021-01-26

Status: New
Project: The SIO2 project
Component/s: OIOIOI
Affects Version/s: Current Version
Fix Version/s: None

Type: Bug Priority: Minor
Reporter: Hubert Badocha Assignee: Unassigned
Resolution: Unresolved Votes: 0
Labels: tag2
Environment: Android, Poco F2 Pro


 Description   
Verticall scrolling on website showing source code of solution doesn't work every time, especialy after few seconds since page loads




[SIO-2379] Duplicated user entries in contest rankings Created: 2020-09-24  Updated: 2020-12-16

Status: New
Project: The SIO2 project
Component/s: OIOIOI
Affects Version/s: Current Version
Fix Version/s: None

Type: Bug Priority: Major
Reporter: Przemysław Podleśny Assignee: Unassigned
Resolution: Unresolved Votes: 0
Labels: None

Attachments: PNG File 120126351_359042991808613_5722611450415607358_n.png    

 Description   
A user has reported duplicate entries appearing on contest scoreboards, in multiple contests. An example can be seen in the attached screenshot.

I confirm that the issue can be reproduced on my setup (Ubuntu 18.04, both Mozilla Firefox 80.0.1 and Chromium 85.0.4183.121).

Link to the contest: https://szkopul.edu.pl/c/archiwum-zadan-k0mpend1x/dashboard/

 Comments   
Comment by Wojciech Dubiel [ 2020-12-16 ]
When user groups are in use, the registration controller's
 filter_participants reports duplicate participants whenever someone is a participant, and belongs to any user groups. That participant will be reported once for every user group membership, irrespective of that group's contests. This is due to how outer joins work.
    
Theoretically, non-participants that belong to multiple groups which belong to the same contest will also be returned twice, but we haven't observed it in the wild.

This could be fixed by changing queryset `|` to `union` but then we get hit by a Django bug:
https://code.djangoproject.com/ticket/29834#no1




[SIO-2378] Review versions of oioioi's dependencies Created: 2020-08-5  Updated: 2021-06-24

Status: New
Project: The SIO2 project
Component/s: OIOIOI
Affects Version/s: Current Version
Fix Version/s: None

Type: Improvement Priority: Major
Reporter: Wojciech Dubiel Assignee: Szymon Czyżmański
Resolution: Unresolved Votes: 0
Labels: None


 Description   
The version constraints in oioioi's setup.py are rather chaotic.

Some of them weren't updated when we updated Django, which means we're using unnecessarily old dependencies.
Other have hardcoded versions from some point in the past.
Other don't have less-than constraint, allowing newer, incompatible versions of some package to be installed.

We should go through each of them, find out the maximal range of versions that works correctly with our version of Django and Python, and set the constraints to that range.




[SIO-2375] Remove deprecated compiler names. Created: 2020-06-27  Updated: 2021-06-24

Status: New
Project: The SIO2 project
Component/s: Evaluation Engine / Workers, OIOIOI
Affects Version/s: Near Future
Fix Version/s: None

Type: Improvement Priority: Minor
Reporter: Artur Pragacz Assignee: Szymon Czyżmański
Resolution: Unresolved Votes: 0
Labels: tag2


 Description   
After 01.01.2021 deprecated compiler names should be removed.

Their list can be found in the setup.py of the sioworkers.
They should be removed not only from that file, but also all throughout sioworkers, including the rst documentation.
One small problem is that sio-compile standalone script uses deprecated 'default-' compiler names (in the function sio.compilers.job:main). It therefore needs some other, preferably local, constants to select default compilers for languages.
In every other place, to the best of my knowledge, the deprecated compiler names can be removed safely.

The deprecated compiler names are also present in OIOIOI (I grepped them in two places, I may have missed some). As far as I know they exist in code paths that are never taken, so there they can also be safely removed.




[SIO-2374] Fix Polish months' names Created: 2020-06-27  Updated: 2021-06-3

Status: In Progress
Project: The SIO2 project
Component/s: OIOIOI
Affects Version/s: Current Version
Fix Version/s: None

Type: Bug Priority: Trivial
Reporter: Artur Pragacz Assignee: Szymon Czyżmański
Resolution: Unresolved Votes: 0
Labels: None


 Description   
In the problems view of the contest: /c/<contest>/p/ (where <contest> is an id of the contest) the dates are written as e.g. "16 Styczeń 3017".
This is grammatically incorrect and should be "16. stycznia 3017" instead.

 Comments   
Comment by Gerrit Gerrit [ 2021-06-3 ]
Change oioioi~master~I095ff99cb943d1ecc24ac2ffe8eab98a2a342aa2, patchset 2
https://gerrit.sio2project.mimuw.edu.pl/3752

(SIO-2374) Fix Polish months' names

In the problems view of the contest: /c/<contest>/p/ (where
<contest> is an id of the contest) the dates are written as
e.g. "16 Czerwiec 3017". This is grammatically incorrect and
should be "16. czerwca 3017" instead.

Change-Id: I095ff99cb943d1ecc24ac2ffe8eab98a2a342aa2




[SIO-2372] User contest visibility Created: 2020-06-23  Updated: 2020-06-23

Status: New
Project: The SIO2 project
Component/s: OIOIOI
Affects Version/s: Near Future
Fix Version/s: None

Type: Improvement Priority: Major
Reporter: Cezary Chodun Assignee: Unassigned
Resolution: Unresolved Votes: 0
Labels: None

Attachments: PNG File Screenshot from 2020-06-16 17-57-26.png     PNG File Screenshot from 2020-06-16 18-01-33.png    

 Description   
Affected changes:
https://gerrit.sio2project.mimuw.edu.pl/#/c/3505/
https://gerrit.sio2project.mimuw.edu.pl/#/c/3515/

Problem:
The database query is too heavy.

TODO:
Optimize the database query.

Description:

As for now user contests will be visible for all registered users.
This is something we don't want. (The user contests should be visible only to people who visited them before)

The changes above aim to resolve this issue. But there is a side effect.
In the first change there is a query that is not optimized by django:
 "return Q(contestview__user=request.user)"

This results in a very heavy query that needs to be improved before it can be submitted to master.

 Comments   
Comment by Szymon Acedański [ 2020-06-23 ]
Well, this is unfotrunate that the database optimiser (Postgres on szkopul.edu.pl) is not powerful enough to efficiently run this query, which otherwise is a correct query. Probably this needs to be refactored in a semantically equivalent query, but easier to optimize. Or maybe we are missing some index, which I doubt.

That's a nice task for someone who would like to dive deeply into this query and really dig into what the database/Django did with it.




[SIO-2368] Input validation in Jenkins release jobs Created: 2020-06-16  Updated: 2020-11-18

Status: New
Project: The SIO2 project
Component/s: SIO2 Project Website and Infrastructure
Affects Version/s: Current Version
Fix Version/s: None

Type: Improvement Priority: Minor
Reporter: Wojciech Dubiel Assignee: Alicja Kluczek
Resolution: Unresolved Votes: 0
Labels: tag1


 Description   
Release jobs on jenkins don't validate input, such as whether specified branch exists. It'd be nice if they did and had nice error messages.




[SIO-2366] Selenium tests and releases tutorial Created: 2020-06-6  Updated: 2020-06-6

Status: New
Project: The SIO2 project
Component/s: OIOIOI
Affects Version/s: Near Future
Fix Version/s: None

Type: Improvement Priority: Minor
Reporter: Cezary Chodun Assignee: Unassigned
Resolution: Unresolved Votes: 0
Labels: None
Environment: Jenkins


 Description   
After fixing selenium tests (oioioi-selenium-tests & oioioi-release-3-selenium) go to the Github Release tab and update the release tutorial.

https://hudson.sio2project.mimuw.edu.pl/ -> Github Release -> edit description -> uncomment the selenium tests




[SIO-2354] SWIG2.0 is not working on szkopul Created: 2020-04-30  Updated: 2020-04-30

Status: New
Project: The SIO2 project
Component/s: Evaluation Engine / Workers
Affects Version/s: Current Version
Fix Version/s: None

Type: Bug Priority: Major
Reporter: Stanisław Strzelecki Assignee: Unassigned
Resolution: Unresolved Votes: 0
Labels: None


 Description   
In szkopul it is impossible to submit python solutions to interactive tasks, where SWIG was used (https://szkopul.edu.pl/s/1358659/)




[SIO-2349] Super users cannot access user group details Created: 2020-04-22  Updated: 2022-03-18

Status: New
Project: The SIO2 project
Component/s: OIOIOI
Affects Version/s: Current Version
Fix Version/s: None

Type: Bug Priority: Minor
Reporter: Michalina Sidor Assignee: Mieszko Grodzicki
Resolution: Unresolved Votes: 0
Labels: tag1


 Description   
While responding to an email from a teacher I discovered that despite my super user privileges I get a 403 error when I go to someone's contest and click "Modify group" under one of their user groups.

 Comments   
Comment by Mieszko Grodzicki [ 2022-03-18 ]
Can't reproduce. Sure, visiting e.g. /usergroups/show/1/ by superuser not owning the group results in 403, but I think it is intended - it's a view that should be visible only to the owner of the group. Superusers can edit it on /admin/usergroups/usergroup/1/change/.




[SIO-2347] Add tests packages description to config.yml Created: 2020-04-18  Updated: 2020-04-18

Status: New
Project: The SIO2 project
Component/s: OIOIOI
Affects Version/s: Near Future
Fix Version/s: None

Type: New Feature Priority: Minor
Reporter: Bartosz Kostka Assignee: Unassigned
Resolution: Unresolved Votes: 0
Labels: tag2


 Description   
We often upload packages with example tests and sometimes with all tests (added in TESTS PACKAGES on problem site).

It would be cool to be able to specify these tests packages in config.yml, like this:

tests_packages:
   mar_example_tests:
       description: Testy przykładowe do zadania Marchewka
       tests: [0*]
       publish_date: now

Wildcards and current publish_date are some additional features, not necessary.




[SIO-2345] Adding an announcement just for specific contestant (or contestants?) Created: 2020-04-9  Updated: 2021-01-15

Status: New
Project: The SIO2 project
Component/s: OIOIOI
Affects Version/s: Near Future
Fix Version/s: None

Type: New Feature Priority: Minor
Reporter: Bartosz Kostka Assignee: Alicja Kluczek
Resolution: Unresolved Votes: 0
Labels: None


 Description   
Quite often we would like to notify some person or a group of people during the contest. Right now, in "Questions and news" we have just two options: send a public announcement to everyone, or answer someone's questions. Having something in-between, i.e. being able to send an announcement to a specific person, or a group of people would be really handy.

So far, the typical workflow was: ask an admin to su into the contestant account, ask an empty question (as a contestant), and then answer to this question, which is way too complicated and hacky.




[SIO-2330] Teachers cannot delete their problems Created: 2020-02-15  Updated: 2021-06-24

Status: New
Project: The SIO2 project
Component/s: OIOIOI
Affects Version/s: Current Version
Fix Version/s: None

Type: Bug Priority: Major
Reporter: Sentry Assignee: Unassigned
Resolution: Unresolved Votes: 0
Labels: tag2

Issue Links:
Relates
relates to SIO-2291 Misc. UX improvements (meta-ticket) Open

 Description   
https://sentry.io/organizations/the-sio2-project/issues/1512998050/?referrer=jira_plugin

{code}
NoReverseMatch: Reverse for 'contests_probleminstance_changelist' with arguments '()' and keyword arguments '{}' not found. 0 pattern(s) tried: []
(11 additional frame(s) were not displayed)
...
  File "oioioi/base/admin.py", line 373, in delete_view
    return model_admin.delete_view(request, object_id, extra_context)
  File "oioioi/problems/admin.py", line 376, in delete_view
    return self.redirect_to_list(request, obj)
  File "oioioi/problems/admin.py", line 332, in redirect_to_list
    return redirect('oioioiadmin:contests_probleminstance_changelist')
  File "oioioi/contests/current_contest.py", line 105, in reverse
    return django_reverse(target, *args, **kwargs)

NoReverseMatch: Reverse for 'contests_probleminstance_changelist' with arguments '()' and keyword arguments '{}' not found. 0 pattern(s) tried: []
{code}

 Comments   
Comment by Michalina Sidor [ 2020-02-15 ]
Moreover deleting by Problem.objects.filter(...).delete() raises IntegrityError: insert or update on table "problems_problemstatistics" violates foreign key constraint "problems_problemstat_problem_id_9570522e_fk_problems_problem_id"
Comment by Franciszek Hnatów [ 2020-03-9 ]
I cannot reproduce this bug, is there any chance it is already solved somehow?




[SIO-2328] _FileLikeFromResponse has no 'close' method Created: 2020-02-12  Updated: 2020-02-12

Status: New
Project: The SIO2 project
Component/s: Filetracker
Affects Version/s: Current Version
Fix Version/s: None

Type: Bug Priority: Major
Reporter: Sentry Assignee: Unassigned
Resolution: Unresolved Votes: 0
Labels: None


 Description   
_FileLikeFromResponse defined here:
https://github.com/sio2project/filetracker/blob/master/filetracker/client/remote_data_store.py#L270

should have a close method.
The close method is called eg. here:

https://github.com/sio2project/oioioi/blob/master/oioioi/oireports/views.py#L157

Stacktrace on sentry:

https://sentry.io/organizations/the-sio2-project/issues/1510360122/?referrer=jira_plugin





[SIO-2325] Exportszu crashes on non-ascii characters Created: 2020-02-3  Updated: 2020-02-3

Status: New
Project: The SIO2 project
Component/s: OIOIOI
Affects Version/s: Current Version
Fix Version/s: None

Type: Bug Priority: Major
Reporter: Wojciech Dubiel Assignee: Unassigned
Resolution: Unresolved Votes: 0
Labels: None


 Description   
Stacktrace on sentry: https://sentry.io/share/issue/d836818ab3714a5e837b54fff58a01f9/

Replacing force_text with force_bytes seems to fix it, but I have no idea whether that's the correct solution




[SIO-2311] In PARegistration add the following field: "I am eligible and willing to participate in the finals". Created: 2019-12-16  Updated: 2021-06-24

Status: New
Project: The SIO2 project
Component/s: OIOIOI
Affects Version/s: Current Version
Fix Version/s: None

Type: New Feature Priority: Minor
Reporter: Bartosz Kostka Assignee: Unassigned
Resolution: Unresolved Votes: 0
Labels: tag1





[SIO-2302] Generate user out for users Created: 2019-12-5  Updated: 2019-12-5

Status: New
Project: The SIO2 project
Component/s: OIOIOI
Affects Version/s: TAG 2019/20 Sprint 1
Fix Version/s: None

Type: New Feature Priority: Major
Reporter: Jakub Radoszewski Assignee: Unassigned
Resolution: Unresolved Votes: 0
Labels: None


 Description   
The "generate user out" option is very useful when handling appeals. It will be even more useful if it is available for contestants (when the results are published), so that they can check the output that was generated at our servers.

A limit (configurable or not) can be put on how many "generate user out" calls can there be per contestant and task. It is not totally compulsory (because the number of such calls does not exceed the number of submissions x tests), but still it could prevent abuse of this function.




[SIO-2300] AttributeError in test run submissions Created: 2019-12-3  Updated: 2019-12-3

Status: New
Project: The SIO2 project
Component/s: Evaluation Engine / Workers, OIOIOI
Affects Version/s: TAG 2019/20 Sprint 1
Fix Version/s: None

Type: Bug Priority: Minor
Reporter: Cezary Chodun Assignee: Unassigned
Resolution: Unresolved Votes: 0
Labels: None
Environment: Linux 4.15.0-54-generic #58-Ubuntu SMP Mon Jun 24 10:55:24 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux

Web browser: FireFox, Chrome

Attachments: Text File runserver_output.txt     PNG File screen.png     Text File supervisor_output.txt    

 Description   
Cannot check a test run submission details due to an "AttributeError".

Steps to reproduce:
- submit test run(as admin)
- go to My submissions
- click the submission date(to show details of the submission)
- Error: "AttributeError"

Other details:
* Manual installation(https://github.com/sio2project/oioioi/blob/master/INSTALL.rst)
* Supervisor is running and is reporting a few errors(see supervisor output)
* I haven't tested this issue as a user

 Comments   
Comment by Szymon Acedański [ 2019-12-3 ]
Adding here what I remember from when we debugged it for a moment:

sbm_testrun.input_file is an object which comes from filetracker (of type _FileLikeFromResponse).
is_zipfile requires seek, which is not provided (and looks like it should not be relied upon).
Probably it's better to just check the extension (sbm_testrun.input_file is an instance of Django FieldFile, therefore it has name and hopefully it has the original extension).




[SIO-2291] Misc. UX improvements (meta-ticket) Created: 2019-11-13  Updated: 2020-05-18

Status: Open
Project: The SIO2 project
Component/s: OIOIOI
Affects Version/s: Current Version
Fix Version/s: None

Type: Improvement Priority: Major
Reporter: Szymon Acedański Assignee: Unassigned
Resolution: Unresolved Votes: 0
Labels: tag1

Issue Links:
Relates
is related to SIO-2326 On szkopul main page, hidden submissi... Resolved
is related to SIO-2353 Some links in teacher problems view a... Resolved
is related to SIO-2295 Multiple minor bugs in quizzes (meta-... Resolved
is related to SIO-2305 Result of the export submission actio... Resolved
is related to SIO-2317 Fix urls in problemset with custom GE... Resolved
is related to SIO-2360 Question kind tags are not translated Resolved
is related to SIO-2310 Forum posts: "Last edit: [nothing is ... Closed
is related to SIO-2299 Test run notification says "Your scor... Closed
is related to SIO-2330 Teachers cannot delete their problems New
is related to SIO-2306 [UI] Submission table: clicking the t... Resolved
is related to SIO-2308 [UI] For questions show rounds relate... Resolved
is related to SIO-2315 In statistics module, in submissions ... Resolved
is related to SIO-2316 In new problemset, sort tasks inside ... Resolved
is related to SIO-2307 [UI] Show limits in the test run view Closed
is related to SIO-2323 Announcement editing and deletion for... Resolved
is related to SIO-2331 Improve all submissions view Resolved
is related to SIO-2332 Move Test run and Score reveal config... Resolved
is related to SIO-2334 [UI] Change labels in contest adminis... Resolved
is related to SIO-2337 [UI] "Add to contest" button is unnat... Resolved
is related to SIO-2339 [UI] "Add problem" in problemset look... Resolved
is related to SIO-2340 [UI] Question list and links on the q... Resolved
is related to SIO-2341 Login form in upper right corner migh... Resolved
is related to SIO-2359 Clicking the problem name in Submissi... Resolved
is related to SIO-2294 Reupload package has three possibilit... Resolved
is related to SIO-2335 Questions and News form filters look bad Resolved
is related to SIO-2049 Differentiate colours between "OK" an... Closed
is related to SIO-2333 Settings in problem settings should b... Closed
is related to SIO-2355 Settings in contest settings should b... Closed
is related to SIO-2293 Quiz problem site has unused tabs Closed




[SIO-2290] Set a default file for the 'test run' module Created: 2019-11-13  Updated: 2019-11-13

Status: New
Project: The SIO2 project
Component/s: OIOIOI
Affects Version/s: TAG 2019/20 Sprint 1
Fix Version/s: None

Type: Improvement Priority: Minor
Reporter: Cezary Chodun Assignee: Cezary Chodun
Resolution: Unresolved Votes: 0
Labels: None


 Description   
In contests like Polish Olimpiad in Informatics, there is a module for test submission of a problem('test run').
In that module a user is supposed to provide source code of a program and a file with test data. By default no file is selected so to test his/her program the user has to create a file on their local machine and copy to it a default test data from the task description.

Modify the module so that when no file with test data is selected the program will be run on the first initial* test. It shouldn't check the output of the program but rather display it normally as if the initial test was supplied from the user's computer.

* More formally ABC0.in, or ABC0a.in(if multiple initial tests are present). Where 'ABC' is the task's ID.




[SIO-2284] Move certain settings from problem to probleminstance Created: 2019-11-10  Updated: 2021-06-24

Status: New
Project: The SIO2 project
Component/s: OIOIOI
Affects Version/s: Current Version
Fix Version/s: None

Type: Improvement Priority: Major
Reporter: Wojciech Dubiel Assignee: Szymon Czyżmański
Resolution: Unresolved Votes: 0
Labels: None


 Description   
Certain settings - eg. testrun configurations or score reveal configurations - depend not just on the problem, but also contest rules, and should be able to differ between contests. Therefore, they should be in probleminstance settings, and not in problem settings.




[SIO-2282] Show test packages in the problemset Created: 2019-11-3  Updated: 2020-12-10

Status: Reopened
Project: The SIO2 project
Component/s: OIOIOI
Affects Version/s: Current Version
Fix Version/s: None

Type: Improvement Priority: Minor
Reporter: Bartosz Kostka Assignee: Unassigned
Resolution: Unresolved Votes: 0
Labels: tag1

TAG Developer: Franciszek Hnatów

 Description   
Right now, you cannot download public test packages (from oioioi.testspackages) in the problems in the problemset.

 Comments   
Comment by Gerrit Gerrit [ 2020-01-20 ]
Change oioioi~master~I5bbeed2f1ccdd18f023cfb28521bd13c3c78af00, patchset 1
https://gerrit.sio2project.mimuw.edu.pl/3393

(SIO-2282) Show test packages in the problemset

Added the ability for contest admins to download test packages right from the problemset

Change-Id: I5bbeed2f1ccdd18f023cfb28521bd13c3c78af00
Comment by Gerrit Gerrit [ 2020-01-20 ]
Change oioioi~master~I5bbeed2f1ccdd18f023cfb28521bd13c3c78af00, patchset 2
https://gerrit.sio2project.mimuw.edu.pl/3393

(SIO-2282) Show test packages in the problemset

Added the ability for contest admins to download test packages right from the problemset

Change-Id: I5bbeed2f1ccdd18f023cfb28521bd13c3c78af00
Comment by Gerrit Gerrit [ 2020-01-22 ]
Change oioioi~master~I5bbeed2f1ccdd18f023cfb28521bd13c3c78af00, patchset 3
https://gerrit.sio2project.mimuw.edu.pl/3393

(SIO-2282) Show test packages in the problemset

Added the ability for contest admins to download test packages right from the problemset

Change-Id: I5bbeed2f1ccdd18f023cfb28521bd13c3c78af00
Comment by Gerrit Gerrit [ 2020-01-28 ]
Change oioioi~master~I5bbeed2f1ccdd18f023cfb28521bd13c3c78af00, patchset 4
https://gerrit.sio2project.mimuw.edu.pl/3393

(SIO-2282) Show test packages in the problemset

Added the ability for contest admins to download test packages right from the problemset

Change-Id: I5bbeed2f1ccdd18f023cfb28521bd13c3c78af00
Comment by Wojciech Dubiel [ 2020-12-7 ]
Doesn't work without a contest in the url.
Comment by Gerrit Gerrit [ 2020-12-7 ]
Change oioioi~master~Iaf49828d4fcac90b1ea162fa8595b5d73792a560, patchset 1
https://gerrit.sio2project.mimuw.edu.pl/3559

SIO-2282 Fix problem site testpackages not working on problem site

The original implementation didn't work outside of contests
for some weird reason.

Change-Id: Iaf49828d4fcac90b1ea162fa8595b5d73792a560
Comment by Wojciech Dubiel [ 2020-12-7 ]
Also, even with the above fix, this is visible only to admins.
Showing test packages to regular users will require more work.
Comment by Gerrit Gerrit [ 2020-12-10 ]
Change oioioi~master~Iaf49828d4fcac90b1ea162fa8595b5d73792a560, patchset 2
https://gerrit.sio2project.mimuw.edu.pl/3559

SIO-2282 Fix problem site testpackages not working on problem site

The original implementation checked permissions in a way
which couldn't possibly work outside of a contest,
even though it was intended specifically for outside-of-contest
operation.

Change-Id: Iaf49828d4fcac90b1ea162fa8595b5d73792a560
Comment by Gerrit Gerrit [ 2020-12-10 ]
Change oioioi~master~Iaf49828d4fcac90b1ea162fa8595b5d73792a560, patchset 3
https://gerrit.sio2project.mimuw.edu.pl/3559

SIO-2282 Fix problem site testpackages not working on problem site

The original implementation was checking permissions in a way
which couldn't possibly work outside of a contest,
even though it was intended specifically for outside-of-contest
operation.

Change-Id: Iaf49828d4fcac90b1ea162fa8595b5d73792a560




[SIO-2280] Add helper in submit view to api command Created: 2019-10-10  Updated: 2021-06-24

Status: New
Project: The SIO2 project
Component/s: OIOIOI
Affects Version/s: Current Version
Fix Version/s: None

Type: Improvement Priority: Major
Reporter: Zuzanna Opała Assignee: Unassigned
Resolution: Unresolved Votes: 0
Labels: easy, tag1

Issue Links:
Relates
relates to SIO-2160 Enable submitservice module on Szkopul Closed
is related to SIO-2160 Enable submitservice module on Szkopul Closed

 Description   
There is endpoint which allow to submit solution via newly added API. There should be message in the submit view (or problem view) which prompts the command to show users this option.




[SIO-2279] Use same table in task archive as in problem set Created: 2019-10-10  Updated: 2021-06-24

Status: New
Project: The SIO2 project
Component/s: OIOIOI
Affects Version/s: Current Version
Fix Version/s: None

Type: Improvement Priority: Minor
Reporter: Zuzanna Opała Assignee: Unassigned
Resolution: Unresolved Votes: 1
Labels: easy, tag1


 Description   
In problem set there are useful statistics (number of submissions and success rate) and option to add to the contest. They could also be present in the task archive view




[SIO-2277] Ranking ingores custom update_user_result_for_{round,contest} Created: 2019-09-11  Updated: 2021-06-24

Status: New
Project: The SIO2 project
Component/s: OIOIOI
Affects Version/s: Current Version
Fix Version/s: None

Type: Bug Priority: Major
Reporter: Wojciech Dubiel Assignee: Unassigned
Resolution: Unresolved Votes: 0
Labels: tag1


 Description   
It's possible to override the update_user_result_for_{round,contest} methods in a contest controller, and change the way results for round and contest are computed form a simple sum to something more elaborate. (For example, on OIJ, we need to have max of two different quizzes.)
Those results will be saved in UserResultForRound and UserResultForContest models.

However, the ranking doesn't care. It just takes per-problem scores from UserResultForProblem objects and sums them.




[SIO-2266] Forum improvements Created: 2019-06-23  Updated: 2021-04-20

Status: Open
Project: The SIO2 project
Component/s: OIOIOI
Affects Version/s: Current Version
Fix Version/s: TAG 2020/21 Winter Sprint

Type: Improvement Priority: Major
Reporter: Bartosz Kostka Assignee: Unassigned
Resolution: Unresolved Votes: 2
Labels: None

Sub-Tasks:
Key
Summary
Type
Status
Assignee
SIO-2402 Add latest posts view on forum Sub-task Resolved Jakub Moliński  
SIO-2403 Allow giving +1 and -1 reactions to p... Sub-task Resolved Wojciech Dubiel  
SIO-2404 Allow markdown in posts Sub-task New  
Sprint: TAG 2020/21 Winter Sprint

 Description   
1. Add the latest posts view for users (it is really problematic to check various categories and topics to be up to date).

2. Allow markdown in posts (maybe even syntax highlighting for codes?).

3. Most of the posts is just confirming some tests. Can we add +1 button, so users can confirm tests in this way?

 Comments   
Comment by Michalina Sidor [ 2019-06-24 ]
emoji reactions! :blobcatpat:
Comment by Gerrit Gerrit [ 2020-12-16 ]
Change oioioi~master~Ib02aad0e43be13b0700396a1edcd5bc5e865ce7a, patchset 1
https://gerrit.sio2project.mimuw.edu.pl/3574

(SIO-2266) Add a latest posts tab to the main forum page.

The post creation date periods that the user can choose are 24h, 48h and 7d.
Mostly reuses the thread/post templates.
Latestposts/post footer differs from thread/post footer in that it
contains also the thread name.

Change-Id: Ib02aad0e43be13b0700396a1edcd5bc5e865ce7a
Comment by Gerrit Gerrit [ 2020-12-16 ]
Change oioioi~master~Ib02aad0e43be13b0700396a1edcd5bc5e865ce7a, patchset 2
https://gerrit.sio2project.mimuw.edu.pl/3574

(SIO-2266) Add a latest posts tab to the main forum page.

The post creation date periods that the user can choose are 24h, 48h and 7d.
Mostly reuses the thread/post templates.
Latestposts/post footer differs from thread/post footer in that it
contains also the thread name.

Change-Id: Ib02aad0e43be13b0700396a1edcd5bc5e865ce7a
Comment by Gerrit Gerrit [ 2021-01-9 ]
Change oioioi~master~Ib02aad0e43be13b0700396a1edcd5bc5e865ce7a, patchset 3
https://gerrit.sio2project.mimuw.edu.pl/3574

(SIO-2266) Add a latest posts tab to the main forum page.

Adds a paginated latest posts tab to forum.
The number of posts shown per page can be configured in the settings
file.
Mostly reuses the thread/post templates.
Latestposts/post footer differs from thread/post footer in that it
contains also the thread name.

Change-Id: Ib02aad0e43be13b0700396a1edcd5bc5e865ce7a
Comment by Gerrit Gerrit [ 2021-01-9 ]
Change oioioi~master~Ib02aad0e43be13b0700396a1edcd5bc5e865ce7a, patchset 4
https://gerrit.sio2project.mimuw.edu.pl/3574

(SIO-2266) Add a latest posts tab to the main forum page.

Adds a paginated latest posts tab to forum.
The number of posts shown per page can be configured in the settings
file.
Mostly reuses the thread/post templates.
Latestposts/post footer differs from thread/post footer in that it
contains also the thread name.

Change-Id: Ib02aad0e43be13b0700396a1edcd5bc5e865ce7a
Comment by Gerrit Gerrit [ 2021-01-9 ]
Change oioioi~master~Ib02aad0e43be13b0700396a1edcd5bc5e865ce7a, patchset 5
https://gerrit.sio2project.mimuw.edu.pl/3574

(SIO-2266) Add a latest posts tab to the main forum page.

Adds a paginated latest posts tab to forum.
The number of posts shown per page can be configured in the settings
file.
Mostly reuses the thread/post templates.
Latestposts/post footer differs from thread/post footer in that it
contains also the thread name.

Change-Id: Ib02aad0e43be13b0700396a1edcd5bc5e865ce7a
Comment by Gerrit Gerrit [ 2021-01-10 ]
Change oioioi~master~Ib02aad0e43be13b0700396a1edcd5bc5e865ce7a, patchset 6
https://gerrit.sio2project.mimuw.edu.pl/3574

(SIO-2266) Add a latest posts tab to the main forum page.

Adds a paginated latest posts tab to forum.
The number of posts shown per page can be configured in the settings
file.
Mostly reuses the thread/post templates.
Latestposts/post footer differs from thread/post footer in that it
contains also the thread name.

Change-Id: Ib02aad0e43be13b0700396a1edcd5bc5e865ce7a
Comment by Gerrit Gerrit [ 2021-01-10 ]
Change oioioi~master~Ib02aad0e43be13b0700396a1edcd5bc5e865ce7a, patchset 7
https://gerrit.sio2project.mimuw.edu.pl/3574

(SIO-2266) Add a latest posts tab to the main forum page.

Adds a paginated latest posts tab to forum.
The number of posts shown per page can be configured in the settings
file.
Mostly reuses the thread/post templates.
Latestposts/post footer differs from thread/post footer in that it
contains also the thread name.

Change-Id: Ib02aad0e43be13b0700396a1edcd5bc5e865ce7a




[SIO-2260] Enable everyone to create personal contests Created: 2019-06-13  Updated: 2019-06-13

Status: New
Project: The SIO2 project
Component/s: OIOIOI
Affects Version/s: TAG 2018/19 Sprint 3
Fix Version/s: None

Type: New Feature Priority: Major
Reporter: Marek Żochowski Assignee: Unassigned
Resolution: Unresolved Votes: 0
Labels: contests_for_everyone

Sub-Tasks:
Key
Summary
Type
Status
Assignee
SIO-2259 Create new type of contest for everyone Sub-task Closed Szymon Acedański  
SIO-2263 Create UI for regular user concerning... Sub-task Closed Szymon Acedański  

 Description   
This type of contest has limited options and should support only programming problems (no quizzes).
Detailed list of limitations can be found in the subtasks.




Improve notifications (SIO-2247)

[SIO-2250] Fix new public question notifications Created: 2019-05-21  Updated: 2019-05-21

Status: New
Project: The SIO2 project
Component/s: OIOIOI
Affects Version/s: TAG 2018/19 Sprint 3
Fix Version/s: None

Type: Sub-task Priority: Major
Reporter: Zuzanna Opała Assignee: Zuzanna Opała
Resolution: Unresolved Votes: 0
Labels: None





Improve notifications (SIO-2247)

[SIO-2249] Add scores to notifications Created: 2019-05-21  Updated: 2019-06-25

Status: Open
Project: The SIO2 project
Component/s: OIOIOI
Affects Version/s: TAG 2018/19 Sprint 3
Fix Version/s: None

Type: Sub-task Priority: Major
Reporter: Zuzanna Opała Assignee: Zuzanna Opała
Resolution: Unresolved Votes: 0
Labels: None


 Comments   
Comment by Gerrit Gerrit [ 2019-06-19 ]
Change oioioi~master~I1ee983744f9ddd54776b231260c07cc87fbf76c8, patchset 1
https://gerrit.sio2project.mimuw.edu.pl/3252

(SIO-2249) Add score to notifications

Change-Id: I1ee983744f9ddd54776b231260c07cc87fbf76c8
Comment by Gerrit Gerrit [ 2019-06-19 ]
Change oioioi~master~I1ee983744f9ddd54776b231260c07cc87fbf76c8, patchset 2
https://gerrit.sio2project.mimuw.edu.pl/3252

(SIO-2249) Add score to notifications

Change-Id: I1ee983744f9ddd54776b231260c07cc87fbf76c8
Comment by Gerrit Gerrit [ 2019-06-21 ]
Change oioioi~master~I1ee983744f9ddd54776b231260c07cc87fbf76c8, patchset 3
https://gerrit.sio2project.mimuw.edu.pl/3252

(SIO-2249) Add score to notifications

Change-Id: I1ee983744f9ddd54776b231260c07cc87fbf76c8
Comment by Gerrit Gerrit [ 2019-06-22 ]
Change oioioi~master~I1ee983744f9ddd54776b231260c07cc87fbf76c8, patchset 4
https://gerrit.sio2project.mimuw.edu.pl/3252

(SIO-2249) Add score to notifications

Change-Id: I1ee983744f9ddd54776b231260c07cc87fbf76c8
Comment by Gerrit Gerrit [ 2019-06-23 ]
Change oioioi~master~I1ee983744f9ddd54776b231260c07cc87fbf76c8, patchset 5
https://gerrit.sio2project.mimuw.edu.pl/3252

(SIO-2249) Add score to notifications

Change-Id: I1ee983744f9ddd54776b231260c07cc87fbf76c8
Comment by Gerrit Gerrit [ 2019-06-23 ]
Change oioioi~master~I1ee983744f9ddd54776b231260c07cc87fbf76c8, patchset 6
https://gerrit.sio2project.mimuw.edu.pl/3252

(SIO-2249) Add score to notifications

Change-Id: I1ee983744f9ddd54776b231260c07cc87fbf76c8
Comment by Gerrit Gerrit [ 2019-06-25 ]
Change oioioi~master~I1ee983744f9ddd54776b231260c07cc87fbf76c8, patchset 7
https://gerrit.sio2project.mimuw.edu.pl/3252

(SIO-2249) Add score to notifications

Change-Id: I1ee983744f9ddd54776b231260c07cc87fbf76c8




[SIO-2247] Improve notifications Created: 2019-05-21  Updated: 2019-06-23

Status: New
Project: The SIO2 project
Component/s: OIOIOI
Affects Version/s: TAG 2018/19 Sprint 3
Fix Version/s: None

Type: Improvement Priority: Major
Reporter: Zuzanna Opała Assignee: Unassigned
Resolution: Unresolved Votes: 0
Labels: None

Sub-Tasks:
Key
Summary
Type
Status
Assignee
SIO-2248 Use system notifications Sub-task Closed Szymon Acedański  
SIO-2249 Add scores to notifications Sub-task Open Zuzanna Opała  
SIO-2250 Fix new public question notifications Sub-task New Zuzanna Opała  
SIO-2251 Rework notifications menu into recent... Sub-task Closed Szymon Acedański  

 Comments   
Comment by Zuzanna Opała [ 2019-05-21 ]
Some additional features which could be:
- notifications on new questions
- fixing errors caused by management command
Comment by Gerrit Gerrit [ 2019-06-19 ]
Change oioioi~master~Iae0f1de69e60f798a16e04471bfd74f6fecb71d8, patchset 1
https://gerrit.sio2project.mimuw.edu.pl/3251

(SIO-2247) Fix red minus sign randomly appearing on navbar

Actually it was the new messages badge, because the generic code for
creating navbar badges always created a badge, even if it was completely
empty.

Change-Id: Iae0f1de69e60f798a16e04471bfd74f6fecb71d8
Comment by Gerrit Gerrit [ 2019-06-21 ]
Change oioioi~master~Iae0f1de69e60f798a16e04471bfd74f6fecb71d8, patchset 2
https://gerrit.sio2project.mimuw.edu.pl/3251

(SIO-2247) Fix red minus sign randomly appearing on navbar

Actually it was the new messages badge, because the generic code for
creating navbar badges always created a badge, even if it was completely
empty.

Change-Id: Iae0f1de69e60f798a16e04471bfd74f6fecb71d8
Comment by Gerrit Gerrit [ 2019-06-22 ]
Change oioioi~master~I4ca2e4921ab87bab00df87397ff8021d48cad8ac, patchset 1
https://gerrit.sio2project.mimuw.edu.pl/3261

(SIO-2247) Acknowledge notifications immediately

This change removes buffering of notifications on the notifications
server. The effect is that notifications will be silently dropped if
user is not connected at the time the notification is sent.

That will be fine once SIO-2251 is merged.

Change-Id: I4ca2e4921ab87bab00df87397ff8021d48cad8ac
Comment by Gerrit Gerrit [ 2019-06-22 ]
Change oioioi~master~I4ca2e4921ab87bab00df87397ff8021d48cad8ac, patchset 2
https://gerrit.sio2project.mimuw.edu.pl/3261

(SIO-2247) Remove notifications buffering and acknowledgement

This change removes buffering of notifications on the notifications
server. The effect is that notifications will be silently dropped if
user is not connected at the time the notification is sent.

It makes all notifications volatile.

That will be fine once SIO-2251 is merged.

Change-Id: I4ca2e4921ab87bab00df87397ff8021d48cad8ac
Comment by Gerrit Gerrit [ 2019-06-23 ]
Change oioioi~master~I4ca2e4921ab87bab00df87397ff8021d48cad8ac, patchset 3
https://gerrit.sio2project.mimuw.edu.pl/3261

(SIO-2247) Remove notifications buffering and acknowledgement

This change removes buffering of notifications on the notifications
server. The effect is that notifications will be silently dropped if
user is not connected at the time the notification is sent.

It makes all notifications volatile.

That will be fine once SIO-2251 is merged.

Change-Id: I4ca2e4921ab87bab00df87397ff8021d48cad8ac




[SIO-2241] Add search to list view of teacher's usergroups Created: 2019-05-11  Updated: 2021-06-24

Status: New
Project: The SIO2 project
Component/s: OIOIOI
Affects Version/s: TAG 2018/19 Sprint 2
Fix Version/s: None

Type: Improvement Priority: Major
Reporter: Marek Żochowski Assignee: Unassigned
Resolution: Unresolved Votes: 0
Labels: groups, tag1





[SIO-2238] Add tests for download_sandboxes management command Created: 2019-05-9  Updated: 2021-06-24

Status: New
Project: The SIO2 project
Component/s: OIOIOI
Affects Version/s: Current Version
Fix Version/s: None

Type: Improvement Priority: Minor
Reporter: Michalina Sidor Assignee: Unassigned
Resolution: Unresolved Votes: 0
Labels: tag1





[SIO-2224] Investigate include('registration.urls') is deprecated warning Created: 2019-04-4  Updated: 2021-03-14

Status: Open
Project: The SIO2 project
Component/s: OIOIOI
Affects Version/s: Current Version
Fix Version/s: None

Type: Bug Priority: Trivial
Reporter: Artur Puzio Assignee: Jakub Moliński
Resolution: Unresolved Votes: 0
Labels: None


 Description   
oioioi/base/tests/tests.py::TestFields::test_dotted_name_field
  /home/ert/PycharmProjects/oioioi/venv/lib/python2.7/site- packages/registration/urls.py:15: DeprecationWarning: include('registration.urls') is deprecated; use include('registration.backends.default.urls') instead.
    DeprecationWarning)





[SIO-2144] "Export submissions" timing out with big archives Created: 2019-01-26  Updated: 2020-12-16

Status: Reopened
Project: The SIO2 project
Component/s: OIOIOI
Affects Version/s: Current Version
Fix Version/s: None

Type: Bug Priority: Minor
Reporter: Wojciech Dubiel Assignee: Unassigned
Resolution: Unresolved Votes: 0
Labels: None

Issue Links:
Duplicate
is duplicated by SIO-2392 Exportszu times out New

 Description   
When you try to export submissions, it will take a long time to generate an archive, and before OIOIOI starts sending it, it is likely that either a reverse proxy or the browser will time out.

One way to fix this would be to generate the archive asynchronously, and immediately send a response to the user stating that the archive will be available shortly. When the user refreshes the page, and the archive is already ready, the page will show a download link to the archive instead.

Another way could possibly be to start streaming the response while the archive is still being generated. Theoretically, tar should be capable of that. Not sure about Django.

 Comments   
Comment by Szymon Acedański [ 2020-04-27 ]
This issue has been automatically closed as Obsolete due to no activity for 365 days.

Feel free to reopen it or create a new one if it's still relevant.
Comment by Michalina Sidor [ 2020-04-27 ]
@kostka reports that this is still a desired feature
Comment by Michalina Sidor [ 2020-04-27 ]
About that, Django is definitely capable of streaming responses, there's a ridiculous/lovely hack recommended by the documentation https://docs.djangoproject.com/en/2.2/howto/outputting-csv/#streaming-csv-files




[SIO-2103] Adding tag 'quiz' for quizzes Created: 2018-05-8  Updated: 2018-05-15

Status: In Progress
Project: The SIO2 project
Component/s: OIOIOI
Affects Version/s: Current Version
Fix Version/s: TAG 2017/18 Sprint 2

Type: New Feature Priority: Major
Reporter: Jakub Sieroń Assignee: Anna Wiewiorowska
Resolution: Unresolved Votes: 0
Labels: None

TAG Developer: Anna Wiewiorowska

 Comments   
Comment by Gerrit Gerrit [ 2018-05-12 ]
Change oioioi~master~I739ed454341ae704eba09c0682d634614c222fa5, patchset 1
https://gerrit.sio2project.mimuw.edu.pl/3001

SIO-2103 - Adding tag quiz for quizzes

Change-Id: I739ed454341ae704eba09c0682d634614c222fa5
Comment by Gerrit Gerrit [ 2018-05-15 ]
Change oioioi~master~I739ed454341ae704eba09c0682d634614c222fa5, patchset 2
https://gerrit.sio2project.mimuw.edu.pl/3001

SIO-2103 - Adding tag quiz for quizzes

Change-Id: I739ed454341ae704eba09c0682d634614c222fa5




[SIO-2102] Quiz preview in problemset Created: 2018-05-8  Updated: 2018-05-14

Status: In Progress
Project: The SIO2 project
Component/s: OIOIOI
Affects Version/s: Current Version
Fix Version/s: TAG 2017/18 Sprint 3

Type: New Feature Priority: Major
Reporter: Jakub Sieroń Assignee: Anna Wiewiorowska
Resolution: Unresolved Votes: 0
Labels: None

TAG Developer: Anna Wiewiorowska

 Comments   
Comment by Gerrit Gerrit [ 2018-05-14 ]
Change oioioi~master~If88568049f7a276a5d13af87cea9b7c4450fba1a, patchset 1
https://gerrit.sio2project.mimuw.edu.pl/3005

(SIO-2102) Quiz preview in problemset

Change-Id: If88568049f7a276a5d13af87cea9b7c4450fba1a
Comment by Gerrit Gerrit [ 2018-05-14 ]
Change oioioi~master~If88568049f7a276a5d13af87cea9b7c4450fba1a, patchset 2
https://gerrit.sio2project.mimuw.edu.pl/3005

(SIO-2102) Quiz preview in problemset

Change-Id: If88568049f7a276a5d13af87cea9b7c4450fba1a




[SIO-2061] Allow upsolving Created: 2018-01-26  Updated: 2020-04-27

Status: Reopened
Project: The SIO2 project
Component/s: OIOIOI
Affects Version/s: Current Version
Fix Version/s: None

Type: Improvement Priority: Major
Reporter: Bartosz Kostka Assignee: Unassigned
Resolution: Unresolved Votes: 0
Labels: None

Attachments: PNG File Screenshot from 2018-01-26 12.43.20.png     PNG File Screenshot from 2018-01-26 12.43.40.png     PNG File Screenshot from 2018-01-26 12.43.59.png    

 Description   
During ONTAK camps, we have to create eternal contest so participants can submit their solution after the round ends. Adding possibility to submit solutions after the contest ends would solve this problem.

I hacked something similar. There is a new field with "upsolving" score in result models. I also created a new kind of submission, but I'm not sure if this is the best approach.

 Comments   
Comment by Szymon Acedański [ 2020-04-27 ]
This issue has been automatically closed as Obsolete due to no activity for 365 days.

Feel free to reopen it or create a new one if it's still relevant.
Comment by Michalina Sidor [ 2020-04-27 ]
@kostka reports that this is still a desired feature and I agree with him about this one




[SIO-2034] Initial tests notifications display wrong task name. Created: 2017-11-12  Updated: 2017-11-12

Status: New
Project: The SIO2 project
Component/s: OIOIOI
Affects Version/s: Current Version
Fix Version/s: Next Sprint

Type: Bug Priority: Major
Reporter: Wojciech Dubiel Assignee: Unassigned
Resolution: Unresolved Votes: 0
Labels: None


 Description   
Steps to reproduce:
1. Submit a solution to task A
2. Submit a solution to task B
3. Wait for the notification counter to go up
4. Open the notifications

What you should see:
"Initial result for task B is ready"
"Initial result for task A is ready"

What you actually see:
"Initial result for task B is ready"
"Initial result for task B is ready"

This was originally reported on 25th OI forum https://sio2.mimuw.edu.pl/c/oi25-1/forum/62/647/




[SIO-2023] Szkopuł doesn't warn about disabled JavaScript Created: 2017-10-3  Updated: 2019-06-21

Status: Open
Project: The SIO2 project
Component/s: OIOIOI
Affects Version/s: Current Version
Fix Version/s: None

Type: Bug Priority: Trivial
Reporter: Marcin Mielniczuk Assignee: Unassigned
Resolution: Unresolved Votes: 0
Labels: easy


 Description   
Last year OIOIOI was said to display a big warning that it can't run without JS. Now there's no such warning.




[SIO-2020] Contests are sometimes created with empty controller_name Created: 2017-09-19  Updated: 2020-04-27

Status: Reopened
Project: The SIO2 project
Component/s: OIOIOI
Affects Version/s: Current Version
Fix Version/s: None

Type: Bug Priority: Major
Reporter: Wojciech Dubiel Assignee: Szymon Acedański
Resolution: Unresolved Votes: 0
Labels: None


 Description   
Sometimes when a teacher is adding a contest, the contest is created with an empty `controller_name`, which causes `controller` to be None, which causes tons of AttributeErrors on 2/3 of pages, including the main portal / landing page.

Stacktrace from a sanity check I added to diagnose this issue:

https://sentry.io/the-sio2-project/szkopul/issues/351545304/

{code}
ValueError: Tried to save contest with empty controller
  File "oioioi/contests/models.py", line 79, in save
    raise ValueError("Tried to save contest with empty controller")
  File "oioioi/contests/forms.py", line 76, in save
    instance.save()
  File "oioioi/base/admin.py", line 333, in add_view
    return model_admin.add_view(request, form_url, extra_context)
...
(12 additional frame(s) were not displayed)

ValueError: Tried to save contest with empty controller
{code}

Probable cause:
If there are no rounds specified, this code saves the contest even if it's not supposed to (commit=False):
https://github.com/sio2project/oioioi/blob/master/oioioi/contests/forms.py#L73-L82

Git blame suggests it's been there since the very beginning, I have on idea why this issue didn't appear before.

 Comments   
Comment by Szymon Acedański [ 2017-09-19 ]
Yep, this code looks sketchy.

At least this round.save():

https://github.com/sio2project/oioioi/blob/master/oioioi/contests/forms.py#L79

Will save the contest even if SimpleContestForm.save is called with commit=False and there were no rounds, as there is no way to insert the new round into the database without inserting the contest first, as there is a foreign key configured.

Maybe something changed with the upgraded version of Django.
Comment by Wojciech Dubiel [ 2017-09-19 ]
Also, the `rounds` variable there is a queryset, and when adding a new contest it will always be empty, because the function changeform_view in django/contrib/admin/options.py saves the main form (which is about Contest in this case) before it saves formsets (which are about Rounds, etc)
Comment by Wojciech Dubiel [ 2017-09-19 ]
By the way, I removed my "sanity check", because it had kind of false-positives (maybe some other code is most of the time saving the contest with proper controller name later on), and it made it impossible for teachers to add contests at all.
Comment by Szymon Acedański [ 2017-11-8 ]
The last Sentry entry is dated Sep 19, 2017 9:19:23 PM UTC. It looks like the problem has been fixed. Please reopen if you know it isn't.
Comment by Wojciech Dubiel [ 2017-11-26 ]
I put the following tempfix in `Contest.save()`, that's why the issue is no longer happening on production.

{code}
    def save(self, *args, **kwargs):
        if not self.controller_name:
            self.controller_name = 'oioioi.teachers.controllers.TeacherContestController'
        super(Contest, self).save(*args, **kwargs)
{/code}
Comment by Artur Puzio [ 2019-01-7 ]
This issue was not updated in a year. Maybe it's not "Priority: critical"?
Comment by Wojciech Dubiel [ 2019-01-7 ]
Well, we have a tempfix so I'm changing it to major.
Still, the tempfix is very szkopul-specific and the contest creation code could use some refactor anyway.
Comment by Szymon Acedański [ 2020-04-27 ]
This issue has been automatically closed as Obsolete due to no activity for 365 days.

Feel free to reopen it or create a new one if it's still relevant.
Comment by Wojciech Dubiel [ 2020-04-27 ]
Still no proper fix. The workaround is szkopul-specific, and not in upstream.




[SIO-1897] Publicsolutions should not be visible during a trial round Created: 2017-02-23  Updated: 2017-02-23

Status: New
Project: The SIO2 project
Component/s: OIOIOI
Affects Version/s: Current Version
Fix Version/s: For the OI Team

Type: Bug Priority: Major
Reporter: Bartosz Tarnawski Assignee: Unassigned
Resolution: Unresolved Votes: 0
Labels: None


 Description   
Apparently the PAContestController logic during PA 2016 decided that publicsolutions should be visible from the very beginning of the trial round (they wouldn't be visible during 'real' rounds, though). This was interpreted as a dangerous bug by some contestants.




[SIO-1866] Allow temporarily blocking submitting tasks Created: 2016-11-14  Updated: 2020-12-16

Status: Reopened
Project: The SIO2 project
Component/s: OIOIOI
Affects Version/s: Current Version
Fix Version/s: None

Type: New Feature Priority: Major
Reporter: Wojciech Dubiel Assignee: Unassigned
Resolution: Unresolved Votes: 0
Labels: tag2


 Description   
When performing maintenance/troubleshooting it would be useful to be able to temporarily prevent participants from submitting solutions for evaluation, without putting the whole site in maintenance mode.

Alternatively, a way to suspend judging of all submissions on all problems (except submissions sent by admins) would also do the trick in most cases.

 Comments   
Comment by Szymon Acedański [ 2020-04-27 ]
This issue has been automatically closed as Obsolete due to no activity for 365 days.

Feel free to reopen it or create a new one if it's still relevant.




[SIO-1846] Upgrade gcc Created: 2016-10-5  Updated: 2018-08-17

Status: New
Project: The SIO2 project
Component/s: Evaluation Engine / Workers
Affects Version/s: Current Version
Fix Version/s: TAG 2016/17 Summer Semester

Type: Improvement Priority: Major
Reporter: Marcin Mielniczuk Assignee: Unassigned
Resolution: Unresolved Votes: 1
Labels: None

Attachments: Zip Archive compiler-sandboxes.zip    
Issue Links:
Blocks
blocks SIO-1843 Use c11 standard Closed

 Description   
gcc 4.8.2 is ancient, even Debian Jessie uses a newer version.

Once we've implemented this, we can fox SIO-1843 and add c11 support.

 Comments   
Comment by Maciej Matraszek [ 2016-10-6 ]
The attached archive contains a rudimentary tutorial and files used to build the current packages. In short, one needs to select necessary .deb packages and unpack them, possibly pruning the docs.

Also, remember that sioworkers will patch binary files found in the archive with compilers. This should be disabled for statically compiled executables with an ".elf_patcher_blacklist" file. For a reference, check the fpc compiler sandbox: "~/.sio-sandboxes/compiler-fpc.2_4_4/.elf_patcher_blacklist"
Comment by Wojciech Dubiel [ 2018-08-16 ]
>gcc 4.8.2 is ancient,
The 4.8.x series had a last release in 2015. If you coinsider that ancient, then guess what? Half the computers in MIMUW computer lab are ancient.

>even Debian Jessie uses a newer version.
just barely newer. It uses 4.9, and it still has 4.8 available.

Also, you say it like Debian Jessie was an old distro, while
- it's still supported
- was the latest Debian stable at the moment you wrote the ticket

That being said, teqwve recently made a gcc 6.3 package for sioworkers, so as soon as we somehow get gcc 6.3 running on contestant's workstation image for onsite contests (which is Debian 8 based), we'll be able to globally switch to 6.3.

Assistance of someone familiar with building gcc from source, and/or developing debian packages, is very welcome.
Comment by Maciej Matraszek [ 2018-08-17 ]
czw., 16.08.2018, 21:24 użytkownik Wojciech Dubiel (JIRA) <

I considered it ancient like two years ago. ;) And I guess that Chrome in
labs is still not updated by now...



Debian stable is too stable for some :), especially when it comes to modern
language features requested by the contestants.




I think, the last time, we did it the other way around - we took the
compiler from contestants' system image and made it work on grading
machines.
Building Debian packages without any new dependencies is (was?) pretty easy
- just take the template, update package name and conflicts and you're done.


Comment by Wojciech Dubiel [ 2018-08-17 ]
We took GCC 6.3 from Debian 9, so we need to either update oizaw from deb8 to deb9, or backport gcc 6.3 to deb8.
The problem with the latter is you need to configure the package build scripts in such a way that the resulting package can be installed side-by-side with the old compilers.




[SIO-1814] Make checker sandboxing more lenient Created: 2016-05-12  Updated: 2017-11-15  Due: 2016-05-14

Status: Reopened
Project: The SIO2 project
Component/s: Evaluation Engine / Workers
Affects Version/s: Current Version
Fix Version/s: TAG 2016/17 Summer Semester

Type: Bug Priority: Major
Reporter: Michał Łazowik Assignee: Unassigned
Resolution: Unresolved Votes: 0
Labels: None

Issue Links:
Blocks
blocks SIO-1780 Make teacher permissions secure Resolved
TAG Developer: Michał Łazowik
TAG Reviewer: Mateusz Śmiech

 Description   
Preferably run it under proot, like ingen & inwer (if performance in proot is good enough, as checkers are run with each submission judging).

If not, add a flag to supervisor that allows more syscalls (fseek, gettimeofday etc.).

 Comments   
Comment by Michał Łazowik [ 2016-05-16 ]
Supervisors benchmark:
(compare 5 * 10^6 small ints)

(#run, sample tests, full tests)

PRoot:
#1: 10.017385179s, 11.391354969s
#2: 10.226155055s, 10.930424845s

No sandboxing:
#1: 9.381381731s, 10.999184434s
#2: 9.18131602s, 10.264128036s

Supervisor:
#1: 11.412477519s, 12.920478417s
#2: 10.469766335s, 12.542908907s
Comment by Gerrit Gerrit [ 2016-05-16 ]
Change I36944a0849a4a4a163be29f9f80e8467a6156497, patchset 1
https://gerrit.sio2project.mimuw.edu.pl/2564

SIO-1814 Use PRoot for checker sandboxing

It's also used for ingen and does not block syscalls that might be useful
in checkers, but should be forbidden in solutions (most notably seek).

Change-Id: I36944a0849a4a4a163be29f9f80e8467a6156497
Comment by Gerrit Gerrit [ 2016-05-16 ]
Change I36944a0849a4a4a163be29f9f80e8467a6156497, patchset 2
https://gerrit.sio2project.mimuw.edu.pl/2564

SIO-1814 Use PRoot for checker sandboxing

It's also used for ingen and does not block syscalls that might be useful
in checkers, but should be forbidden in solutions (most notably seek).

Change-Id: I36944a0849a4a4a163be29f9f80e8467a6156497
Comment by Gerrit Gerrit [ 2016-05-16 ]
Change I36944a0849a4a4a163be29f9f80e8467a6156497, patchset 3
https://gerrit.sio2project.mimuw.edu.pl/2564

SIO-1814 Use PRoot for checker sandboxing

It's also used for ingen and does not block syscalls that might be useful
in checkers, but should be forbidden in solutions (most notably seek).

Change-Id: I36944a0849a4a4a163be29f9f80e8467a6156497
Comment by Michał Łazowik [ 2016-06-20 ]
Sandboxing turned on on Szkopuł.
Comment by Michał Łazowik [ 2016-06-20 ]
Aaaand disabled on Szkopuł. Still causes problems.
Comment by Michał Łazowik [ 2016-06-20 ]
Submission that breaks it: https://szkopul.edu.pl/s/247518/ from problem: https://szkopul.edu.pl/c/warsztaty-dla-gimnazjalistow/problemset/problem/wTy-sxQCIKry0Ml-6RvM0L78/site/?key=statement




[SIO-1614] Jenkins script for publishing sioworkers to PIP Created: 2015-03-18  Updated: 2020-12-16

Status: In Progress
Project: The SIO2 project
Component/s: SIO2 Project Website and Infrastructure
Affects Version/s: Current Version
Fix Version/s: None

Type: Improvement Priority: Trivial
Reporter: Szymon Acedański Assignee: Szymon Czyżmański
Resolution: Unresolved Votes: 0
Labels: tag1


 Comments   
Comment by Wojciech Dubiel [ 2020-12-16 ]
Blocked by too old openssl on ripper.
We'll need to wait until we migrate jenkins to a more up-to-date machine.




[SIO-1548] unit tests: add assertNumQueries to unit tests to avoid sql queries explosion Created: 2014-05-25  Updated: 2016-12-14

Status: New
Project: The SIO2 project
Component/s: OIOIOI
Affects Version/s: Current Version
Fix Version/s: TAG 2016/17 Summer Semester

Type: Task Priority: Major
Reporter: Michał Adamczyk Assignee: Unassigned
Resolution: Unresolved Votes: 0
Labels: None


 Description   
It's quite easy to generate linear number of sql queries in django. It's hard to detect without a large database and django toolbar, so its usally detected during programming contests.

To avoid such situation IMHO we should test number of sql queries in unit tests. Django supports it:

https://docs.djangoproject.com/en/1.5/topics/testing/overview/#django.test.TestCase.assertNumQueries

The task is to add such assertion to each unit test.


 Comments   
Comment by Michał Adamczyk [ 2014-05-25 ]
Read also: http://blog.isotoma.com/2014/05/a-different-view/




[SIO-1538] think whether there are no race conditions between RemoteProblemUrl creation and model solutions submission Created: 2014-05-21  Updated: 2016-12-14

Status: New
Project: The SIO2 project
Component/s: OIOIOI
Affects Version/s: Current Version
Fix Version/s: For the OI Team

Type: Bug Priority: Minor
Reporter: Michał Adamczyk Assignee: Unassigned
Resolution: Unresolved Votes: 0
Labels: None


 Description   
Such a problem was in Zeus, when ZeusProblemData were created exactly the same way as RemoteProblemUrl.




[SIO-1537] "we are using cookies" information bar Created: 2014-05-21  Updated: 2021-11-19

Status: New
Project: The SIO2 project
Component/s: OIOIOI
Affects Version/s: Current Version
Fix Version/s: TAG 2016/17 Summer Semester

Type: New Feature Priority: Minor
Reporter: Michał Adamczyk Assignee: Unassigned
Resolution: Unresolved Votes: 0
Labels: None


 Description   
I'm not sure that we need this, but someone asked during last PA.




[SIO-1527] Fix all small problems with publicsolutions Created: 2014-05-21  Updated: 2016-11-14

Status: New
Project: The SIO2 project
Component/s: OIOIOI
Affects Version/s: Current Version
Fix Version/s: TAG 2013/14

Type: Bug Priority: Major
Reporter: Maciej Dębski Assignee: Unassigned
Resolution: Unresolved Votes: 0
Labels: None

Attachments: Text File 0001-hack-Do-not-take-trial-rounds-into-account-for-resul.patch     Text File 0001-to-improve-Public-solutions-hacks.patch     Text File 0002-to-improve-Allow-seeing-public-solutions-sources.patch     Text File 0003-to-improve-Filter-out-non-user-submissions.patch     Text File 0004-to-upstream-ndash-instead-of-None.patch     Text File 0005-to-upstream-kolejne-poprawki-do-publicsolutions.patch     Text File 0006-Publicsolutions-only-last-submission.patch     Text File 0007-to-improve-publicsolutions-select-related.patch    
Issue Links:
Duplicate
is duplicated by SIO-1523 publicsolutions - do not show "Publis... Closed

 Description   
Aaargh, it did not work at all when we tried to enable it on PA. I fixed most of issues, hacked some of them. You may want to use patches attached, but they may be of low-quality.

* Nie chcą się pojawić, bo nie wszystkie rundy miały publiczne wyniki -
HACK - ograniczyłem warunek do niepróbnych rund, ale w ogóle to on głupi jest.
* Źródła dostają 403 - HACK - to nie miało prawa działać, coś napisałem,
ale na szybko, cholera wie czy przy okazji czegoś nie podziurawiłem
* filtr po zadaniach zawiera każde milion razy - FIXED
* Widać wzorcówki i zgłoszenia adminów - FIXED
* None na liście wyników - FIXED - zamieniłem na ndash
* Wieki się generuje lista, robi mnóstwo niepotrzebnych zapytań - PARTIAL - saddam coś robił, pewnie warto jeszcze spojrzeć
* Nie powinniśmy wyświetlać imion i nazwisk anonimowych. - FIXED
* Czy jest sens publikować nie-ostatnie zgłoszenia? Straszny syf się od tego zrobił. - FIXED
* publicsolutions - do not show "Publish" button if all have been forcefully published. - HACK

 Comments   
Comment by Tom Macieszczak [ 2014-05-22 ]
Oprócz oczywistych gniotów to multum z tych rzeczy wynika z tego, że odpowiednie metody w kontrolerze konkursu w ogóle nie zostały nadpisane jak zakładała implementacja... Zrobię jakieś sensowne defaulty, bo potem wychodzą takie buraki.
Comment by Maciej Dębski [ 2014-05-22 ]
No wlasnie nie jestem przekonany.
Gdyby nie byly nadpisane to powinno leciec NYI, nie?
Lub inaczej - do nadpisania powinny byc tylko te ktore rzeczywiscie o czyms
decyduja.

Hm, ja chyba swoimi patchami zadnej nowej metody w pa.controllers nie
dodalem.

Bede na tagu dzisiaj to pogadamy.
Comment by Szymon Acedański [ 2016-11-9 ]
Maćku, czy to jest jeszcze aktualne?
Comment by Maciej Dębski [ 2016-11-14 ]
Nie mam pojęcia, sorry
On Wed, 9 Nov 2016 at 17:38, Szymon Acedański (JIRA) <





[SIO-1525] Files and tests should be lower in menu Created: 2014-05-20  Updated: 2016-12-7

Status: New
Project: The SIO2 project
Component/s: OIOIOI
Affects Version/s: Current Version
Fix Version/s: Next Sprint

Type: Improvement Priority: Minor
Reporter: Szymon Acedański Assignee: Unassigned
Resolution: Unresolved Votes: 0
Labels: after-pa





[SIO-1504] Ctimes does not work when round.end_time = None Created: 2014-04-24  Updated: 2016-11-30

Status: Reopened
Project: The SIO2 project
Component/s: OIOIOI
Affects Version/s: Current Version
Fix Version/s: Next Sprint

Type: Bug Priority: Minor
Reporter: Maciej Dębski Assignee: Unassigned
Resolution: Unresolved Votes: 0
Labels: None


 Description   
.

 Comments   
Comment by Gerrit Gerrit [ 2014-04-24 ]
Change I0b6ec1d879b58827fd3fa92349ebb0b213bf717c, patchset 1
https://gerrit.sio2project.mimuw.edu.pl/2057

SIO-1504 Ctimes does not work when round.end_time = None

Change-Id: I0b6ec1d879b58827fd3fa92349ebb0b213bf717c
Comment by Gerrit Gerrit [ 2014-04-24 ]
Change I0b6ec1d879b58827fd3fa92349ebb0b213bf717c, patchset 2
https://gerrit.sio2project.mimuw.edu.pl/2057

SIO-1504 Ctimes does not work when round.end_time = None

Change-Id: I0b6ec1d879b58827fd3fa92349ebb0b213bf717c
Comment by Gerrit Gerrit [ 2014-04-24 ]
Change I0b6ec1d879b58827fd3fa92349ebb0b213bf717c, patchset 3
https://gerrit.sio2project.mimuw.edu.pl/2057

SIO-1504 Ctimes does not work when round.end_time = None

Change-Id: I0b6ec1d879b58827fd3fa92349ebb0b213bf717c




[SIO-1503] OiForceDnsIpAuthMiddleware should not work indefinitely Created: 2014-04-10  Updated: 2016-11-30

Status: New
Project: The SIO2 project
Component/s: OIOIOI
Affects Version/s: Current Version
Fix Version/s: For the OI Team

Type: Bug Priority: Major
Reporter: Szymon Acedański Assignee: Unassigned
Resolution: Unresolved Votes: 0
Labels: None





[SIO-1499] Statistics: Results histogram TABLE should have some title Created: 2014-04-2  Updated: 2016-12-14

Status: New
Project: The SIO2 project
Component/s: OIOIOI
Affects Version/s: Current Version
Fix Version/s: Next Sprint

Type: Bug Priority: Major
Reporter: Szymon Acedański Assignee: Unassigned
Resolution: Unresolved Votes: 0
Labels: None


 Description   
Otherwise the table and the drawing are not separated and column labels seem to be the duplicates of the histogram axis labels.




[SIO-1490] oireports: Selected user for single-user-report is not preserved after validation error Created: 2014-03-31  Updated: 2016-11-30

Status: New
Project: The SIO2 project
Component/s: OIOIOI
Affects Version/s: Current Version
Fix Version/s: For the OI Team

Type: Bug Priority: Major
Reporter: Maciej Matraszek Assignee: Unassigned
Resolution: Unresolved Votes: 0
Labels: None





[SIO-1485] Add unsafe package upload contest permission Created: 2014-03-27  Updated: 2016-11-30

Status: New
Project: The SIO2 project
Component/s: OIOIOI
Affects Version/s: Current Version
Fix Version/s: TAG 2016/17 Summer Semester

Type: Improvement Priority: Minor
Reporter: Bartosz Tarnawski Assignee: Unassigned
Resolution: Unresolved Votes: 0
Labels: None

Issue Links:
Blocks
is blocked by SIO-1409 Run generators and verifiers on siowo... Closed

 Description   
After SIO-1409 gets resolved, there will be two ways of uploading Sinol packages, sandboxed and a direct way. The first one is safe, while the second one gives more control of the upload process to the contest admin.
Currently the uploading way depends only on a constant in setup.py, but a new contest permissions should be introduced to handle it in an individual way.




[SIO-1472] Fix comments about units in sioworkers limits Created: 2014-03-7  Updated: 2016-12-14

Status: New
Project: The SIO2 project
Component/s: Evaluation Engine / Workers
Affects Version/s: Current Version
Fix Version/s: Next Sprint

Type: Bug Priority: Minor
Reporter: Bartosz Tarnawski Assignee: Unassigned
Resolution: Unresolved Votes: 0
Labels: None


 Description   
https://github.com/sio2project/sioworkers/blob/master/sio/compilers/common.py#L8
Acoording to a comment, the default compiler output limit is set in KiB, but in fact the constant is intepreted in bytes. This and similar inconsistenices should be identified and removed.




[SIO-1437] better user picker - everywhere Created: 2014-02-14  Updated: 2016-11-30

Status: New
Project: The SIO2 project
Component/s: OIOIOI
Affects Version/s: Current Version
Fix Version/s: TAG 2016/17 Summer Semester

Type: Improvement Priority: Major
Reporter: Michał Adamczyk Assignee: Unassigned
Resolution: Unresolved Votes: 0
Labels: None


 Description   
For example, when adding roundtimeextension. Now, there is a list with usernames (unsorted), so it's extremly hard to pick the right user (specially when you know only first&last name).

Would be nice to have a user picker like in "su". Moreover, it should be limited to the participants only.

Part of the ticket is to find each place, where such picker is needed.




[SIO-1394] Add tests to ACMContestController Created: 2013-12-20  Updated: 2015-11-5

Status: New
Project: The SIO2 project
Component/s: OIOIOI
Affects Version/s: Current Version
Fix Version/s: For the OI Team

Type: Task Priority: Minor
Reporter: Maciej Matraszek Assignee: Unassigned
Resolution: Unresolved Votes: 1
Labels: None


 Comments   
Comment by Tomasz Zakrzewski [ 2014-06-19 ]
This should really be done as we sometimes make changes in things like rankings and it affects ACM, but is not detected when the tests are run.




[SIO-1332] ACM ranking page should have CSSes for printing Created: 2013-10-29  Updated: 2016-11-9

Status: Open
Project: The SIO2 project
Component/s: OIOIOI
Affects Version/s: Current Version
Fix Version/s: For the OI Team

Type: New Feature Priority: Minor
Reporter: Kuba Łącki Assignee: Unassigned
Resolution: Unresolved Votes: 0
Labels: None


 Description   
Right now the printout contains menus and lots of unnecessary stuff

Also, the header should read something like [contest-name] - ranking instead of just "ranking"




[SIO-1307] OI Reg: form should not be validated after a school is added Created: 2013-10-13  Updated: 2016-11-9

Status: Open
Project: The SIO2 project
Component/s: OIOIOI
Affects Version/s: Current Version
Fix Version/s: For the OI Team

Type: Bug Priority: Minor
Reporter: Szymon Acedański Assignee: Unassigned
Resolution: Unresolved Votes: 0
Labels: None





[SIO-1273] Exporting ranking with users' personal data Created: 2013-07-4  Updated: 2017-02-25

Status: Closed
Project: The SIO2 project
Component/s: OIOIOI
Affects Version/s: Near Future
Fix Version/s: Near Future

Type: Improvement Priority: Major
Reporter: Maciej Matraszek Assignee: Unassigned
Resolution: Unresolved Votes: 0
Labels: oi-1et





[SIO-1268] clean up dates printing stuff Created: 2013-06-16  Updated: 2016-11-30

Status: Open
Project: The SIO2 project
Component/s: OIOIOI
Affects Version/s: 0.1.10
Fix Version/s: TAG 2016/17 Summer Semester

Type: Bug Priority: Trivial
Reporter: Agata Cieplik Assignee: Unassigned
Resolution: Unresolved Votes: 0
Labels: None


 Description   
all dates should be printed like that...

localtime = timezone.localtime(p.add_date)
localtime.strftime("%Y-%m-%d %H:%M:%S")

 Comments   
Comment by Maciej Matraszek [ 2013-06-20 ]
Shouldn't it be "%X %x" or "%x %X"? See:

>>> from datetime import datetime
>>> import locale
>>> datetime.now().strftime("%X %x")
'19:24:33 06/20/13'
>>> locale.setlocale(locale.LC_TIME, 'pl_PL.UTF8')
'pl_PL.UTF8'
>>> datetime.now().strftime("%X %x")
'19:25:08 20.06.2013'
>>> locale.setlocale(locale.LC_TIME, 'en_ZW.UTF8')
'en_ZW.UTF8'
>>> datetime.now().strftime("%X %x")
'19:26:08 20/06/2013'




[SIO-1259] syntax highlighting Created: 2013-06-5  Updated: 2016-11-30

Status: Open
Project: The SIO2 project
Component/s: OIOIOI
Affects Version/s: 0.1.10
Fix Version/s: TAG 2016/17 Summer Semester

Type: Improvement Priority: Minor
Reporter: Agata Cieplik Assignee: Unassigned
Resolution: Unresolved Votes: 0
Labels: None


 Description   
add syntax highlighting to forum, questions and wherever you think it is necessary..




[SIO-1175] No tests for oioioi-sioworkers integration Created: 2013-01-16  Updated: 2016-11-30

Status: Open
Project: The SIO2 project
Component/s: Evaluation Engine / Workers, OIOIOI
Affects Version/s: 0.1.5
Fix Version/s: TAG 2016/17 Summer Semester

Type: Improvement Priority: Major
Reporter: Maciej Matraszek Assignee: Unassigned
Resolution: Unresolved Votes: 0
Labels: None





Generated at Fri Apr 10 10:21:05 CEST 2026 using JIRA 6.1#6144-sha1:2e5032834b5e9b089289c97f8425a146c3cf4464.