diff --git a/app/controllers/docs/visitors_controller.rb b/app/controllers/docs/visitors_controller.rb index 0853d24df..a3c68c2a6 100644 --- a/app/controllers/docs/visitors_controller.rb +++ b/app/controllers/docs/visitors_controller.rb @@ -21,6 +21,10 @@ def api render_using_presenter(Docs::ApiPresenter) end + def user_info + render_using_presenter(Docs::UserInfoPresenter) + end + private def render_using_presenter(presenter) diff --git a/app/presenters/docs/contents_presenter.rb b/app/presenters/docs/contents_presenter.rb index c6b7b4e96..ca3497ca3 100644 --- a/app/presenters/docs/contents_presenter.rb +++ b/app/presenters/docs/contents_presenter.rb @@ -12,7 +12,7 @@ def display_category def items { - contents: {display_topic: "Contents", pages: ["Categories"]} + contents: { display_topic: "Contents", pages: ["Categories"] } } end end diff --git a/app/presenters/docs/user_info_presenter.rb b/app/presenters/docs/user_info_presenter.rb new file mode 100644 index 000000000..5f871caa8 --- /dev/null +++ b/app/presenters/docs/user_info_presenter.rb @@ -0,0 +1,19 @@ +# frozen_string_literal: true + +module Docs + class UserInfoPresenter < Docs::BasePresenter + def category + :user_info + end + + def display_category + "User Information" + end + + def items + { + lotteries: { display_topic: "Lotteries", pages: ["Managing service requirements"] }, + } + end + end +end diff --git a/app/views/docs/visitors/_contents_contents_1.html.erb b/app/views/docs/visitors/_contents_contents_1.html.erb index 629e9e988..99b63ad71 100644 --- a/app/views/docs/visitors/_contents_contents_1.html.erb +++ b/app/views/docs/visitors/_contents_contents_1.html.erb @@ -1,5 +1,5 @@
-

<%= link_to 'Getting Started', docs_getting_started_path %>

+

<%= link_to "Getting Started", docs_getting_started_path %>

The basics of creating your event and understanding terms used on the site. @@ -9,7 +9,7 @@

-

<%= link_to 'Managing an Event', docs_management_path %>

+

<%= link_to "Managing an Event", docs_management_path %>

Checking in, starting, monitoring, and closing down your event. @@ -19,7 +19,7 @@

-

<%= link_to 'OST Remote', docs_ost_remote_path %>

+

<%= link_to "OST Remote", docs_ost_remote_path %>

Full documentation for OST Remote, the easiest way to enter live time entries. @@ -29,7 +29,7 @@

-

<%= link_to 'The OpenSplitTime API', docs_api_path %>

+

<%= link_to "The OpenSplitTime API", docs_api_path %>

How to use the OpenSplitTime API. @@ -38,10 +38,20 @@


+
+

<%= link_to "User Information", docs_user_info_path %>

+
+

+ Navigating OpenSplitTime as a User. +

+
+
+
+

Getting Help

-

If you have any questions, please <%= mail_to 'mark@opensplittime.org', 'contact us' %> and we will do our best to +

If you have any questions, please <%= mail_to "mark@opensplittime.org", "contact us" %> and we will do our best to help.

diff --git a/app/views/docs/visitors/_user_info_lotteries_1.html.erb b/app/views/docs/visitors/_user_info_lotteries_1.html.erb new file mode 100644 index 000000000..a9359c56c --- /dev/null +++ b/app/views/docs/visitors/_user_info_lotteries_1.html.erb @@ -0,0 +1,100 @@ +
+

Service Requirements

+
+

For entrants who are accepted or placed on a waitlist, OpenSplitTime provides organizers with a way of keeping track of service requirements. + Once a Lottery is finished and the organizer has uploaded a service form, entrants can download that form, fill it out, complete it, and then + upload a completed form.

+
+
+
+ +
+

Downloading a Service Form

+
+

If you have been accepted or waitlisted, and you need to download a service form, here are the steps:

+
    +
  1. If you already have an OpenSplitTime account, + + <%= user_signed_in? ? + "log in to OpenSplitTime" : + link_to("log in to OpenSplitTime", new_user_session_path, data: { turbo_frame: :form_modal }) + %>. + + The email address you use for your OpenSplitTime User account will need to be the same as the email address you used to sign up for the event. +
  2. +
  3. If you do not already have an OpenSplitTime account, or if you have an OpenSplitTime account under a different email address, you will + need to + + <%= user_signed_in? ? + "sign up to OpenSplitTime" : + link_to("sign up to OpenSplitTime", new_user_registration_path) + %>. + +
  4. +
  5. Click on the <%= user_signed_in? ? link_to("My Stuff", my_stuff_path) : "My Stuff" %> link in the navigation + bar at the top of the page. +
  6. +
  7. Under the "Manage Service" card, click the appropriate link. This will take you to your Manage Service page.
  8. +
  9. Alternatively, you can search for your name in the Lottery Entrants page, click to expand the card to show details, and click the "Manage + Service" button that appears on that card. +
  10. +
  11. Click the "Download" link to download a blank service form.
  12. +
  13. The form information may be filled out electronically, but all signatures must be manually obtained. Electronic + signatures are not supported. +
  14. +
+
+
+
+ +
+

Uploading a Completed Service Form

+
+

Once you have your service form completed and signed by all appropriate parties, + here are the steps to upload the completed form:

+
    +
  1. Scan or take a photo of your completed form. The format must be jpeg, png, or pdf, and the file size must be less than 2 MB.
  2. +
  3. + + <%= user_signed_in? ? + "Log in to OpenSplitTime" : + link_to("Log in to OpenSplitTime", new_user_session_path, data: { turbo_frame: :form_modal }) + %> + + using the same account you used to download the form.
  4. +
  5. Navigate to your Manage Service page as described above, and find the card with the heading that says, "Upload Completed Service Form".
  6. +
  7. Drag your completed service form to the dropzone area, or click/tap the area and browse to find your file.
  8. +
  9. Click/tap the "Attach" button at the bottom of the card.
  10. +
  11. The page will reload, and you should see "Under Review" in the Status card at the top of the page.
  12. +
+
+
+
+ +
+

Service Form Review

+
+

Your form will be reviewed and either approved or rejected. It may take several days for the review process to be complete. + Please submit your form early to allow plenty of time for review and to provide any needed corrections.

+

If the form is rejected, you will see comments giving a description of the reason for the rejection. + If your form is rejected, you will need to click "Remove" to delete the form, fix the problems, + and then upload a corrected form.

+
+
+
+ +
+

How to Get Your Form Accepted the First Time

+
+

Here are some things to keep in mind before submitting your service form:

+
    +
  1. Don't use an outdated form. Make sure you download the current form from the "Manage Service" page. Don't use a + form from a previous year. It will be rejected. +
  2. +
  3. Fill out the form completely. A form will be rejected if all the necessary information is not provided.
  4. +
  5. Get all your signatures. A form will be rejected if it is not fully signed.
  6. +
  7. Submit your form on time. Forms submitted after the deadline will be rejected.
  8. +
+
+
+
diff --git a/app/views/lotteries/show.html.erb b/app/views/lotteries/show.html.erb index ba5455a4c..99adaf79c 100644 --- a/app/views/lotteries/show.html.erb +++ b/app/views/lotteries/show.html.erb @@ -130,6 +130,17 @@ <% end %> <% when "results" %> + <% if @presenter.lottery.finished? && @presenter.lottery.service_form.attached? %> + <%= render partial: "shared/callout_with_link", + locals: { + icon_name: "info-circle", + icon_color: "info", + callout_color: "info", + main_text: t(".callout_main_text"), + detail_paragraphs: t(".callout_detail_paragraph_1"), + link: link_to("Learn more", docs_user_info_path, class: "btn btn-outline-primary") + } %> + <% end %>

Lottery Results<%= " Last updated #{time_ago_in_words(@presenter.lottery.updated_at)} ago" %>

diff --git a/config/locales/views.en.yml b/config/locales/views.en.yml index 4f562dc31..f884c3d6f 100644 --- a/config/locales/views.en.yml +++ b/config/locales/views.en.yml @@ -55,6 +55,11 @@ en: new: callout_detail_paragraph: 'Import Jobs run in the background, allowing you to do other work while the import is ongoing. You can check the status of any of your import jobs at any time by clicking "Imports" on the top menu bar.' + lotteries: + show: + callout_main_text: "Service form is now available for download" + callout_detail_paragraph_1: "For those accepted to the lottery or waitlisted, the service form is now available for download from your Manage Service page. When the form is complete with all signatures in place, you will upload the form from the same Manage Service page." + people: show: confirm_person_claimed: "This action will associate your user (%{user_email}) with %{person_full_name}. This will allow you to quickly access your results, lottery service requirements, and other information from the My Stuff view. Please ensure this is really you before claiming this Person. This action can be undone only by a site administrator.\n\nClick OK to complete the assignment or Cancel to return without assigning." diff --git a/config/routes.rb b/config/routes.rb index 2f26d80d6..241277b3d 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -38,6 +38,7 @@ get "management", to: "visitors#management" get "ost_remote", to: "visitors#ost_remote" get "api", to: "visitors#api" + get "user_info", to: "visitors#user_info" end scope :my_stuff, controller: :my_stuff, as: :my_stuff do