Kopiowanie i import
Kopia jest kształtem, a nie historią - wewnątrz instalacji i między dwiema.
Skopiować możesz aktywność, rundę albo zadanie, a wszystkie trzy robi to samo okno. Za każdym razem mówi ono, co jedzie, a co nie, zanim zatwierdzisz.
Kopia jest kształtem, a nie historią
Żadna kopia nie zabiera zgłoszeń, wyników ani niczyich praw. O to właśnie chodzi, a okno mówi to od razu — nie dowiesz się o tym dopiero w następnym semestrze.
Skopiuj aktywność na nową edycję
Z listy aktywności: skopiuj na nową edycję. Podajesz własną nazwę i mówisz, kiedy zaczyna się pierwsza runda.
- Kopia zabiera rundy, zadania i ustawienia.
- Nie zabiera niczego, co się wydarzyło: żadnych zgłoszeń, wyników ani niczyich praw.
- Każda data przesuwa się tak, żeby pierwsza runda zaczęła się wtedy, kiedy powiesz.
- Powstaje nieopublikowana. Nic się nie otworzy i nikt poza tobą jej nie zobaczy, dopóki jej nie opublikujesz.
Skopiuj rundę
Z serii: skopiuj tę rundę. Wybierasz, do której aktywności trafi — łącznie z tą samą, i tak właśnie robi się drugi termin tej samej rundy.
- Kopia zabiera zadania podpięte do rundy, ich przypięte wersje i ustawienia, daty rankingu, ważność oraz adresy, z których wolno się do niej dostać.
- Powstaje zamknięta i nie trzyma niczyjej pracy: żadnych zgłoszeń, wyników, niczego ogłoszonego.
- Zadania są własnością biblioteki. Kopia wskazuje na te same, zamiast je duplikować.
- Gdy slug zadania jest w aktywności docelowej zajęty, kopia dostaje wolny.
Zarchiwizowanych aktywności nie ma na liście docelowych, bo Server ich nie przyjmie.
Zduplikuj zadanie
Z biblioteki: duplikuj.
- Kopia zabiera wyłącznie najnowszą wersję — jej treść, pliki i paczkę.
- Historia nie jedzie: notatki o zmianach, które tej kopii nigdy się nie przydarzyły, byłyby cudzą przeszłością.
- Powstaje prywatna i twoja, czymkolwiek był oryginał, i nie jest nigdzie podpięta. Jej slug wywodzi się ze sluga oryginału.
Między dwiema instalacjami
Wyeksportuj do pliku i importuj z pliku przenoszą tę samą definicję kopii między instalacjami. Paczka wymiany to zip z manifestem i każdym bajtem nazwanym własną sumą kontrolną; może nią być zadanie, runda albo cała aktywność.
Nic w środku nie jest wskazywane identyfikatorem — podpięcie nazywa swoje zadanie slugiem z samej paczki, bo identyfikator nie znaczy nic w innej instalacji. Rysunek wspólny dla dwóch zadań leży tam raz.
Co jedzie, a co nie
Dokładnie to, co zabiera kopia, bez tego, co należy do instalacji. Nigdy: zgłoszenia, wyniki, pytania, nadania, zapisy, grupy, hasło zapisu, to czy było opublikowane lub zarchiwizowane, stan rundy oraz właściciel zadania i lista udostępnień.
Dwa wyjątki nie wypadają, tylko jadą inaczej:
- Przypięta wersja nie jedzie. Identyfikator wersji należy do instalacji eksportującej, a paczka i tak zawiera jedną wersję — więc importer przypina do tej, która przyjechała.
- Dokumenty aktywności jadą — regulamin i strony wejściowe, najnowsza wersja na język. Regulamin kursu jest częścią jego kształtu.
Zaimportowana aktywność jest opublikowana od razu, inaczej niż kopia. Publikacja nie jedzie w paczce, a import o nią nie pyta: nowa aktywność powstaje opublikowana i tak samo powstaje ta z importu. Lista wylicza jej stan z dat, zamiast pokazywać W przygotowaniu, a rundy otworzą się w terminach, które import wyliczył z podanej przez ciebie daty startu. Jeżeli chcesz ją najpierw przejrzeć, kliknij Cofnij publikację.
Import ma dwa kroki, a pierwszy nie zapisuje niczego
Otwórz archiwum, a dostaniesz plan: które zadania są nowe, które są już tutaj i
co do których paczka i twoja biblioteka się nie zgadzają. Slug, który pasuje
przy innych bajtach, jest pytaniem, nigdy cichym podstawieniem — podpięcie
cudzego zadanie-1 do zaimportowanej rundy postawiłoby całemu rocznikowi nie tę
pracę, a żaden ekran by potem tego nie powiedział.
Paczka z aktywnością pyta o slug i datę startu, zanim cokolwiek zostanie zapisane, z tego samego powodu, dla którego pyta kopia: import, który po cichu zachowałby terminy z zeszłego semestru, jest awarią, której ta funkcja ma zapobiegać.
Czytnik odmawia plikowi, który nie jest zipem, archiwum bez żadnego z dwóch opisów, manifestowi, którego nie umie sparsować, formatowi, którego nie zna, i manifestowi wymieniającemu plik, którego w archiwum nie ma.
Każdy plik jest sprawdzany z własną sumą kontrolną, w drugim kroku, zanim jego bajty gdziekolwiek pojadą. Sam zip tego nie załatwia: przekręcony bajt w zapisanym wpisie rozpakowuje się czysto i bez słowa, a łapie to wyłącznie suma kontrolna.
Czytnik przyjmuje też eksport z ZawodyWeb. Najpierw konwertuje go na paczkę wymiany, więc dalej wszystko idzie tą samą ścieżką, a to, czego konwersja nie umiała przenieść, zobaczysz, zanim zatwierdzisz.
Ograniczenie rozmiaru
Wszystko przechodzi przez pamięć przeglądarki. Przy paczce powyżej 64 MB dostajesz ostrzeżenie; powyżej 256 MB zostaje ona odrzucona, a ekran wymienia najcięższe zadania — eksportuj wtedy rundami.
Import z innego sędziego
Zadania możesz też ściągnąć z usługi, której ta instalacja nie prowadzi — dziś z
archiwum UVa. To Zasoby zewnętrzne i jest
to wyłączone, dopóki ktoś z instance:update tego nie włączy.