diff --git a/app/controllers/admin_controller.rb b/app/controllers/admin_controller.rb index b6d5955940b..13a3686a90e 100644 --- a/app/controllers/admin_controller.rb +++ b/app/controllers/admin_controller.rb @@ -419,11 +419,11 @@ def do_anonymize_person end private def competition_list_from_string(competition_ids_string) - (competition_ids_string || '').split(',').uniq.compact + competition_ids_string.split(',').uniq.compact end def complete_persons - @competition_ids = competition_list_from_string(params[:competition_ids]) + @competition_ids = competition_list_from_string(params.fetch(:competition_ids, "")) @persons_to_finish = FinishUnfinishedPersons.search_persons(@competition_ids) if @persons_to_finish.empty? diff --git a/app/webpacker/components/Panel/PanelPages.jsx b/app/webpacker/components/Panel/PanelPages.jsx index dee576082d1..8e16caac18a 100644 --- a/app/webpacker/components/Panel/PanelPages.jsx +++ b/app/webpacker/components/Panel/PanelPages.jsx @@ -38,7 +38,7 @@ import DownloadVoters from './pages/DownloadVoters'; import ApprovePictures from './pages/ApprovePictures'; import EditPersonRequestsPage from './pages/EditPersonRequestsPage'; import AnonymizationScriptPage from './pages/AnonymizationScriptPage'; -import CreateNewComersPage from './pages/CreateNewComersPage'; +import CreateNewcomersPage from './pages/CreateNewcomersPage'; const DELEGATE_HANDBOOK_LINK = 'https://documents.worldcubeassociation.org/edudoc/delegate-handbook/delegate-handbook.pdf'; @@ -169,7 +169,7 @@ export default { }, [PANEL_PAGES.createNewComers]: { name: 'Create New Comers', - component: CreateNewComersPage, + component: CreateNewcomersPage, }, [PANEL_PAGES.checkRecords]: { name: 'Check Records', diff --git a/app/webpacker/components/Panel/pages/CreateNewComersPage/index.jsx b/app/webpacker/components/Panel/pages/CreateNewComersPage/index.jsx deleted file mode 100644 index 61fdc5b2560..00000000000 --- a/app/webpacker/components/Panel/pages/CreateNewComersPage/index.jsx +++ /dev/null @@ -1,53 +0,0 @@ -import React from 'react'; -import { Header } from 'semantic-ui-react'; -import CompetitionsInput from './CompetitionsInput'; - -export default function CreateNewComersPage() { - return ( - <> -
Create New Comers
- - - - ); -} - -function Information() { - return ( - <> -

- In this script, a "person" always means a triple of (id,name,countryId) and - "similar" always means just name similarity. A person is called - "finished" if it has a non-empty personId. A "semi-id" is the id - without the running number at the end. -

-

- For each unfinished person in the Results table, I show you the few most similar - persons. Then you make choices and click "update" at the bottom of the page - to show and execute your choices. You can: -

- - -
- - ); -} diff --git a/app/webpacker/components/Panel/pages/CreateNewComersPage/CompetitionsInput.jsx b/app/webpacker/components/Panel/pages/CreateNewcomersPage/CompetitionsInput.jsx similarity index 100% rename from app/webpacker/components/Panel/pages/CreateNewComersPage/CompetitionsInput.jsx rename to app/webpacker/components/Panel/pages/CreateNewcomersPage/CompetitionsInput.jsx diff --git a/app/webpacker/components/Panel/pages/CreateNewcomersPage/index.jsx b/app/webpacker/components/Panel/pages/CreateNewcomersPage/index.jsx new file mode 100644 index 00000000000..2a5cf006f44 --- /dev/null +++ b/app/webpacker/components/Panel/pages/CreateNewcomersPage/index.jsx @@ -0,0 +1,47 @@ +import React from 'react'; +import { Header, List, ListItem } from 'semantic-ui-react'; +import CompetitionsInput from './CompetitionsInput'; + +export default function CreateNewcomersPage() { + return ( + <> +
Create Newcomers
+ + + + ); +} + +function Information() { + return ( + <> +

+ In this script, a "person" always means a triple of (id,name,countryId) and + "similar" always means just name similarity. A person is called + "finished" if it has a non-empty personId. A "semi-id" is the id + without the running number at the end. +

+

+ For each unfinished person in the Results table, I show you the few most similar + persons. Then you make choices and click "update" at the bottom of the page + to show and execute your choices. You can: +

+ + + Choose the person as "new", optionally modifying name, country and + semi-id. This will add the person to the Persons table (with appropriately + extended id) and change its Results accordingly. If this person has both roman and + local names, the syntax for the names to be inserted correctly is + "romanName (localName)". + + + Choose another person. This will overwrite the person's (id,name,countryId) + triple in the Results table with those of the other person. + + + Skip it if you're not sure yet. + + + + ); +}