From b42cf953ca290214d9d1931345f703c46dc40e7b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nicol=C3=A1s=20Cirio?= Date: Thu, 14 Nov 2024 13:35:09 -0300 Subject: [PATCH] [FEATURE] [MER-3807] My assignments student view (#5250) * rename /assignments route to /schedule * add assignments liveview v0.1 + add link to student sidebar * add hero banner * implement Assignments dark figma design + extend SectionResourceDepot.grade_pages to support extra query conditions * merge student settings with raw assignments * solve route conflict between student and instructor liveview * merge student data into assignment + update UI with student data per assignment * toggle completed pages visibility * refactor toggle_visibility_button and move it to Utils module * implement temporary assigns and manual gc to reduce memory usage * navigate to page * add request path for prologue pages * slim assigns to reduce memory usage * add page icon based on assignment purpose and completion state * add light mode * change visible and hidden icons to grab current color * add tests * remove typo * fix flaky test --- .../images/gradients/assignments-bg.png | Bin 0 -> 170142 bytes lib/oli/delivery/paywall.ex | 10 +- .../sections/section_resource_depot.ex | 16 +- lib/oli_web/components/delivery/layouts.ex | 24 +- lib/oli_web/components/delivery/utils.ex | 37 ++ lib/oli_web/icons.ex | 89 +++- .../live/delivery/student/assignments_live.ex | 245 ++++++++++ .../live/delivery/student/learn_live.ex | 2 +- .../live/delivery/student/schedule_live.ex | 4 +- lib/oli_web/live/delivery/student/utils.ex | 8 +- .../plugs/redirect_by_attempt_state.ex | 4 +- lib/oli_web/router.ex | 6 +- test/oli/delivery/paywall_test.exs | 4 +- .../page_delivery_controller_test.exs | 4 +- .../student/assignments_live_test.exs | 434 ++++++++++++++++++ .../live/delivery/student/learn_live_test.exs | 4 +- .../delivery/student/lesson_live_test.exs | 2 +- .../delivery/student/review_live_test.exs | 2 +- .../delivery/student/schedule_live_test.exs | 14 +- 19 files changed, 865 insertions(+), 44 deletions(-) create mode 100644 assets/static/images/gradients/assignments-bg.png create mode 100644 lib/oli_web/live/delivery/student/assignments_live.ex create mode 100644 test/oli_web/live/delivery/student/assignments_live_test.exs diff --git a/assets/static/images/gradients/assignments-bg.png b/assets/static/images/gradients/assignments-bg.png new file mode 100644 index 0000000000000000000000000000000000000000..85b5a8eee0103ac1310286b6b0060928d6367d60 GIT binary patch literal 170142 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%0ASW?9QEIMr({zFTw&|X-t2m_ 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 Enum.sort_by(& &1.numbering_index) end diff --git a/lib/oli_web/components/delivery/layouts.ex b/lib/oli_web/components/delivery/layouts.ex index 8045a33b514..4edf85071ef 100644 --- a/lib/oli_web/components/delivery/layouts.ex +++ b/lib/oli_web/components/delivery/layouts.ex @@ -520,6 +520,16 @@ defmodule OliWeb.Components.Delivery.Layouts do <:text>Notes + <.nav_link + id="assignments_nav_link" + href={path_for(:assignments, @section, @preview_mode, @sidebar_expanded)} + is_active={@active_tab == :assignments} + sidebar_expanded={@sidebar_expanded} + > + <:icon> + <:text>Assignments + + <.nav_link :if={@section.contains_explorations} id="explorations_nav_link" @@ -611,7 +621,7 @@ defmodule OliWeb.Components.Delivery.Layouts do "#" end - defp path_for(:schedule, %Section{slug: section_slug}, preview_mode, sidebar_expanded) do + defp path_for(:assignments, %Section{slug: section_slug}, preview_mode, sidebar_expanded) do if preview_mode do ~p"/sections/#{section_slug}/preview/assignments" else @@ -619,6 +629,18 @@ defmodule OliWeb.Components.Delivery.Layouts do end end + defp path_for(:assignments, _section, _preview_mode, _sidebar_expanded) do + "#" + end + + defp path_for(:schedule, %Section{slug: section_slug}, preview_mode, sidebar_expanded) do + if preview_mode do + ~p"/sections/#{section_slug}/preview/student_schedule" + else + ~p"/sections/#{section_slug}/student_schedule?#{%{sidebar_expanded: sidebar_expanded}}" + end + end + defp path_for(:schedule, _section, _preview_mode, _sidebar_expanded) do "#" end diff --git a/lib/oli_web/components/delivery/utils.ex b/lib/oli_web/components/delivery/utils.ex index ce4d657af3a..c00da42982a 100644 --- a/lib/oli_web/components/delivery/utils.ex +++ b/lib/oli_web/components/delivery/utils.ex @@ -11,6 +11,8 @@ defmodule OliWeb.Components.Delivery.Utils do alias Oli.Delivery.Sections.Section alias Oli.Accounts alias Oli.Accounts.{User, Author, SystemRole} + alias OliWeb.Icons + alias Phoenix.LiveView.JS alias Lti_1p3.Tool.ContextRoles alias Lti_1p3.Tool.PlatformRoles @@ -299,6 +301,41 @@ defmodule OliWeb.Components.Delivery.Utils do """ end + attr :target_selector, :string, required: true, doc: "CSS Selector of the elements to hide/show" + + def toggle_visibility_button(assigns) do + ~H""" + + + """ + end + + def hide_completed(target_selector) do + JS.hide() + |> JS.hide(to: target_selector) + |> JS.show(to: "#show_completed_button", display: "flex") + end + + def show_completed(target_selector) do + JS.hide() + |> JS.show(to: target_selector, display: "flex") + |> JS.show(to: "#hide_completed_button", display: "flex") + end + @doc """ Returns the course week number of a resource based on the section start date. It considers that weeks start on Sunday, regardless of the section start date that could be any day of the week. diff --git a/lib/oli_web/icons.ex b/lib/oli_web/icons.ex index 8e3c9300c75..9b8324a0054 100644 --- a/lib/oli_web/icons.ex +++ b/lib/oli_web/icons.ex @@ -20,6 +20,7 @@ defmodule OliWeb.Icons do def flag(assigns) do ~H""" + """ @@ -464,6 +474,7 @@ defmodule OliWeb.Icons do def world(assigns) do ~H""" + + + + + + + + + + """ + end + + def assignments(%{is_active: false} = assigns) do + ~H""" + + + + + + + + + + + """ + end + + attr :is_active, :boolean, default: false + def practice(%{is_active: true} = assigns) do ~H""" - + @@ -1186,12 +1254,12 @@ defmodule OliWeb.Icons do def hidden(assigns) do ~H""" @@ -1216,12 +1284,7 @@ defmodule OliWeb.Icons do - + diff --git a/lib/oli_web/live/delivery/student/assignments_live.ex b/lib/oli_web/live/delivery/student/assignments_live.ex new file mode 100644 index 00000000000..e5137e9fa49 --- /dev/null +++ b/lib/oli_web/live/delivery/student/assignments_live.ex @@ -0,0 +1,245 @@ +defmodule OliWeb.Delivery.Student.AssignmentsLive do + use OliWeb, :live_view + + alias Oli.Accounts.User + alias Oli.Delivery.Sections.Section + alias Oli.Delivery.Sections.SectionResourceDepot + alias Oli.Delivery.{Metrics, Settings} + alias OliWeb.Common.{FormatDateTime, SessionContext} + alias OliWeb.Components.Delivery.Utils, as: DeliveryUtils + alias OliWeb.Delivery.Student.Utils + alias OliWeb.Icons + + # this is an optimization to reduce the memory footprint of the liveview process + @required_keys_per_assign %{ + section: + {[ + :id, + :slug, + :customizations, + :title, + :brand, + :contains_discussions, + :contains_explorations, + :contains_deliberate_practice + ], %Section{}}, + current_user: {[:id, :name, :email], %User{}} + } + + def mount(_params, _session, socket) do + %{section: section, current_user: %{id: current_user_id}} = socket.assigns + + send(self(), :gc) + + {:ok, + assign(socket, + active_tab: :assignments, + assignments: get_assignments(section, current_user_id) + ) + |> slim_assigns(), temporary_assigns: [assignments: []]} + end + + defp slim_assigns(socket) do + Enum.reduce(@required_keys_per_assign, socket, fn {assign_name, {required_keys, struct}}, + socket -> + assign( + socket, + assign_name, + Map.merge( + struct, + Map.filter(socket.assigns[assign_name], fn {k, _v} -> k in required_keys end) + ) + ) + end) + end + + def handle_info(:gc, socket) do + # manually garbage collect to reduce memory usage after mount/3 + :erlang.garbage_collect(socket.transport_pid) + :erlang.garbage_collect(self()) + {:noreply, socket} + end + + def render(assigns) do + ~H""" + <.top_hero_banner /> +

+ <.assignments_agenda assignments={@assignments} ctx={@ctx} section_slug={@section.slug} /> +
+ """ + end + + def top_hero_banner(assigns) do + ~H""" +
+
+

+ Assignments +

+
+
+ """ + end + + attr :assignments, :list, required: true + attr :ctx, SessionContext, required: true + attr :section_slug, :string, required: true + + def assignments_agenda(assigns) do + ~H""" +
+
+
+
+ + <%= Enum.count(@assignments, &(!is_nil(&1.raw_avg_score))) %> of <%= Enum.count( + @assignments + ) %> Assignments + +
+ +
+
+ <.assignment + :for={assignment <- @assignments} + :if={@assignments != []} + assignment={assignment} + ctx={@ctx} + target={ + Utils.lesson_live_path(@section_slug, assignment.slug, + request_path: ~p"/sections/#{@section_slug}/assignments" + ) + } + /> + There are no assignments +
+
+ """ + end + + attr :assignment, :map, required: true + attr :ctx, SessionContext, required: true + attr :target, :string, required: true, doc: "The target URL for the assignment" + + def assignment(assigns) do + ~H""" +
+
+ <.page_icon purpose={@assignment.purpose} completed={!is_nil(@assignment.raw_avg_score)} /> +
+
+ <%= @assignment.numbering_index %> +
+
+ <.link + navigate={@target} + class="h-6 mt-0.5 text-[#353740] dark:text-[#eeebf5] text-base font-semibold leading-normal whitespace-nowrap truncate" + > + <%= @assignment.title %> + + + <%= Utils.label_for_scheduling_type(@assignment.scheduling_type) %> <%= FormatDateTime.to_formatted_datetime( + @assignment.end_date, + @ctx, + "{WDshort} {Mshort} {D}, {YYYY}" + ) %> + +
+
+ + Attempt <%= @assignment.attempts %> of <%= max_attempts(@assignment.max_attempts) %> + +
+
+ + <%= Utils.parse_score(@assignment.raw_avg_score.score) %> / <%= Utils.parse_score( + @assignment.raw_avg_score.out_of + ) %> + +
+
+
+ + -- + +
+
+ """ + end + + _docp = """ + Returns a list of assignments by querying the section resources form the SectionResourceDepot + and merging the results with the combined settings and metrics for the current user. + + Only required fields needed for render/1 are returned (to reduce memory usage). + """ + + defp get_assignments(section, current_user_id) do + raw_assignments = SectionResourceDepot.graded_pages(section.id, hidden: false) + resource_ids = Enum.map(raw_assignments, & &1.resource_id) + + combined_settings = + Settings.get_combined_settings_for_all_resources(section.id, current_user_id, resource_ids) + + progress_per_page_id = + Metrics.progress_across_for_pages(section.id, resource_ids, [current_user_id]) + + raw_avg_score_per_page_id = + Metrics.raw_avg_score_across_for_pages(section, resource_ids, [current_user_id]) + + user_resource_attempt_counts = + Metrics.get_all_user_resource_attempt_counts(section, current_user_id) + + Enum.map(raw_assignments, fn assignment -> + effective_settings = Map.get(combined_settings, assignment.resource_id, %{}) + + %{ + id: assignment.resource_id, + title: assignment.title, + numbering_index: assignment.numbering_index, + scheduling_type: effective_settings.scheduling_type, + end_date: effective_settings.end_date, + purpose: assignment.purpose, + progress: progress_per_page_id[assignment.resource_id], + raw_avg_score: raw_avg_score_per_page_id[assignment.resource_id], + max_attempts: effective_settings.max_attempts, + attempts: user_resource_attempt_counts[assignment.resource_id] || 0, + slug: assignment.revision_slug + } + end) + end + + defp max_attempts(0), do: "∞" + defp max_attempts(max_attempts), do: max_attempts + + attr :completed, :boolean, required: true + attr :purpose, :atom, required: true + + defp page_icon(assigns) do + ~H""" + <%= cond do %> + <% @purpose == :application -> %> + + <% @completed -> %> + + <% true -> %> + + <% end %> + """ + end +end diff --git a/lib/oli_web/live/delivery/student/learn_live.ex b/lib/oli_web/live/delivery/student/learn_live.ex index 7c4b29e355d..14876024572 100644 --- a/lib/oli_web/live/delivery/student/learn_live.ex +++ b/lib/oli_web/live/delivery/student/learn_live.ex @@ -1376,7 +1376,7 @@ defmodule OliWeb.Delivery.Student.LearnLive do phx-click="toggle_completed_pages" phx-value-module_resource_id={@module["resource_id"]} > -
+
diff --git a/lib/oli_web/live/delivery/student/schedule_live.ex b/lib/oli_web/live/delivery/student/schedule_live.ex index a93a8c902d4..cea61996d5d 100644 --- a/lib/oli_web/live/delivery/student/schedule_live.ex +++ b/lib/oli_web/live/delivery/student/schedule_live.ex @@ -98,7 +98,7 @@ defmodule OliWeb.Delivery.Student.ScheduleLive do non_scheduled_container_groups={@schedule} section_slug={@section_slug} historical_graded_attempt_summary={@historical_graded_attempt_summary} - request_path={~p"/sections/#{@section_slug}/assignments"} + request_path={~p"/sections/#{@section_slug}/student_schedule"} />
@@ -146,7 +146,7 @@ defmodule OliWeb.Delivery.Student.ScheduleLive do schedule_ranges={schedule_ranges} section_slug={@section_slug} historical_graded_attempt_summary={@historical_graded_attempt_summary} - request_path={~p"/sections/#{@section_slug}/assignments"} + request_path={~p"/sections/#{@section_slug}/student_schedule"} /> <% end %> diff --git a/lib/oli_web/live/delivery/student/utils.ex b/lib/oli_web/live/delivery/student/utils.ex index 3dff6b02548..4362e932e36 100644 --- a/lib/oli_web/live/delivery/student/utils.ex +++ b/lib/oli_web/live/delivery/student/utils.ex @@ -389,16 +389,16 @@ defmodule OliWeb.Delivery.Student.Utils do - `params`: (Optional) Additional query parameters in a list or map format. If omitted, a URL is generated without additional parameters. ## Examples - - `schedule_live_path("math")` returns `"/sections/math/assignments"`. - - `schedule_live_path("math", request_path: "some/previous/url")` returns `"/sections/math/assignments?request_path=some/previous/url"`. + - `schedule_live_path("math")` returns `"/sections/math/student_schedule"`. + - `schedule_live_path("math", request_path: "some/previous/url")` returns `"/sections/math/student_schedule?request_path=some/previous/url"`. """ def schedule_live_path(section_slug, params \\ []) def schedule_live_path(section_slug, []), - do: ~p"/sections/#{section_slug}/assignments" + do: ~p"/sections/#{section_slug}/student_schedule" def schedule_live_path(section_slug, params), - do: ~p"/sections/#{section_slug}/assignments?#{params}" + do: ~p"/sections/#{section_slug}/student_schedule?#{params}" # nil case arises for linked loose pages not in in hierarchy index def get_container_label(nil, section), do: section.title diff --git a/lib/oli_web/plugs/redirect_by_attempt_state.ex b/lib/oli_web/plugs/redirect_by_attempt_state.ex index fa355825a5e..d9a96e73129 100644 --- a/lib/oli_web/plugs/redirect_by_attempt_state.ex +++ b/lib/oli_web/plugs/redirect_by_attempt_state.ex @@ -227,7 +227,9 @@ defmodule OliWeb.Plugs.RedirectByAttemptState do conn |> halt() |> assign(:already_been_redirected?, true) - |> Phoenix.Controller.redirect(to: "/sections/#{section_slug}/prologue/#{revision_slug}") + |> Phoenix.Controller.redirect( + to: "/sections/#{section_slug}/prologue/#{revision_slug}?#{conn.query_string}" + ) end end diff --git a/lib/oli_web/router.ex b/lib/oli_web/router.ex index 45c31a54aff..caec0c2eb48 100644 --- a/lib/oli_web/router.ex +++ b/lib/oli_web/router.ex @@ -998,7 +998,8 @@ defmodule OliWeb.Router do live("/", Delivery.Student.IndexLive) live("/learn", Delivery.Student.LearnLive) live("/discussions", Delivery.Student.DiscussionsLive) - live("/assignments", Delivery.Student.ScheduleLive) + live("/assignments", Delivery.Student.AssignmentsLive) + live("/student_schedule", Delivery.Student.ScheduleLive) live("/explorations", Delivery.Student.ExplorationsLive) live("/practice", Delivery.Student.PracticeLive) end @@ -1021,7 +1022,8 @@ defmodule OliWeb.Router do live("/", Delivery.Student.IndexLive, :preview) live("/learn", Delivery.Student.LearnLive, :preview) live("/discussions", Delivery.Student.DiscussionsLive, :preview) - live("/assignments", Delivery.Student.ScheduleLive, :preview) + live("/assignments", Delivery.Student.AssignmentsLive, :preview) + live("/student_schedule", Delivery.Student.ScheduleLive, :preview) live("/explorations", Delivery.Student.ExplorationsLive, :preview) live("/practice", Delivery.Student.PracticeLive, :preview) end diff --git a/test/oli/delivery/paywall_test.exs b/test/oli/delivery/paywall_test.exs index 630e26110ff..8c0b149da37 100644 --- a/test/oli/delivery/paywall_test.exs +++ b/test/oli/delivery/paywall_test.exs @@ -894,8 +894,8 @@ defmodule Oli.Delivery.PaywallTest do end test "browse_payments/4 applies paging", %{product: product} do - payment_1_id = insert(:payment, section: product, code: 123_456_789).id - _payment_2_id = insert(:payment, section: product, code: 987_654_321).id + payment_1_id = insert(:payment, section: product, code: 123_456_789, type: :bypass).id + _payment_2_id = insert(:payment, section: product, code: 987_654_321, type: :direct).id [%{payment: %Payment{id: ^payment_1_id}}] = Paywall.browse_payments(product.slug, %Paging{limit: 1, offset: 0}, %Sorting{ diff --git a/test/oli_web/controllers/page_delivery_controller_test.exs b/test/oli_web/controllers/page_delivery_controller_test.exs index 7d115ff8c8f..2f31095f166 100644 --- a/test/oli_web/controllers/page_delivery_controller_test.exs +++ b/test/oli_web/controllers/page_delivery_controller_test.exs @@ -2426,7 +2426,7 @@ defmodule OliWeb.PageDeliveryControllerTest do conn = recycle(conn) |> Pow.Plug.assign_current_user(user, OliWeb.Pow.PowHelpers.get_pow_config(:user)) - |> get(~p"/sections/#{section.slug}/assignments") + |> get(~p"/sections/#{section.slug}/student_schedule") assert html_response(conn, 200) =~ section.title @@ -2459,7 +2459,7 @@ defmodule OliWeb.PageDeliveryControllerTest do conn = recycle(conn) |> Pow.Plug.assign_current_user(user, OliWeb.Pow.PowHelpers.get_pow_config(:user)) - |> get(~p"/sections/#{section.slug}/preview/assignments") + |> get(~p"/sections/#{section.slug}/preview/schedule") assert html_response(conn, 200) =~ section.title assert html_response(conn, 200) =~ "Course content" diff --git a/test/oli_web/live/delivery/student/assignments_live_test.exs b/test/oli_web/live/delivery/student/assignments_live_test.exs new file mode 100644 index 00000000000..22799c07844 --- /dev/null +++ b/test/oli_web/live/delivery/student/assignments_live_test.exs @@ -0,0 +1,434 @@ +defmodule OliWeb.Delivery.Student.AssignmentsLiveTest do + use ExUnit.Case, async: true + use OliWeb.ConnCase + + import Phoenix.LiveViewTest + import Oli.Factory + import Ecto.Query, warn: false + + alias Lti_1p3.Tool.ContextRoles + alias Oli.Delivery.Attempts.Core.ResourceAccess + alias Oli.Delivery.Sections + alias Oli.Resources.ResourceType + + defp live_view_assignments_live_route(section_slug) do + ~p"/sections/#{section_slug}/assignments" + end + + defp create_elixir_project(_) do + author = insert(:author) + project = insert(:project, authors: [author]) + + # revisions... + ## pages... + page_1_revision = + insert(:revision, + resource_type_id: ResourceType.get_id_by_type("page"), + title: "Start here", + graded: true + ) + + page_2_revision = + insert(:revision, + resource_type_id: ResourceType.get_id_by_type("page"), + title: "Page 2", + graded: true + ) + + page_3_revision = + insert(:revision, + resource_type_id: ResourceType.get_id_by_type("page"), + title: "Page 3", + graded: true + ) + + page_4_revision = + insert(:revision, + resource_type_id: ResourceType.get_id_by_type("page"), + title: "Page 4", + graded: true, + purpose: :application + ) + + ## modules... + module_1_revision = + insert(:revision, %{ + resource_type_id: Oli.Resources.ResourceType.get_id_by_type("container"), + children: [page_1_revision.resource_id, page_2_revision.resource_id], + title: "How to use this course" + }) + + module_2_revision = + insert(:revision, %{ + resource_type_id: Oli.Resources.ResourceType.get_id_by_type("container"), + children: [page_3_revision.resource_id], + title: "Configure your setup" + }) + + ## units... + unit_1_revision = + insert(:revision, %{ + resource_type_id: Oli.Resources.ResourceType.get_id_by_type("container"), + children: [module_1_revision.resource_id], + title: "Introduction" + }) + + unit_2_revision = + insert(:revision, %{ + resource_type_id: Oli.Resources.ResourceType.get_id_by_type("container"), + children: [module_2_revision.resource_id], + title: "Building a Phoenix app" + }) + + ## root container... + container_revision = + insert(:revision, %{ + resource_type_id: Oli.Resources.ResourceType.get_id_by_type("container"), + children: [ + unit_1_revision.resource_id, + unit_2_revision.resource_id, + page_4_revision.resource_id + ], + title: "Root Container" + }) + + all_revisions = + [ + page_1_revision, + page_2_revision, + page_3_revision, + page_4_revision, + module_1_revision, + module_2_revision, + unit_1_revision, + unit_2_revision, + container_revision + ] + + # asociate resources to project + Enum.each(all_revisions, fn revision -> + insert(:project_resource, %{ + project_id: project.id, + resource_id: revision.resource_id + }) + end) + + # publish project + publication = + insert(:publication, %{project: project, root_resource_id: container_revision.resource_id}) + + # publish resources + Enum.each(all_revisions, fn revision -> + insert(:published_resource, %{ + publication: publication, + resource: revision.resource, + revision: revision, + author: author + }) + end) + + # create section... + section = + insert(:section, + base_project: project, + title: "The best course ever!", + analytics_version: :v2 + ) + + {:ok, section} = Sections.create_section_resources(section, publication) + {:ok, _} = Sections.rebuild_contained_pages(section) + + %{ + section: section, + page_1: page_1_revision, + page_2: page_2_revision, + page_3: page_3_revision, + page_4: page_4_revision, + module_1: module_1_revision, + module_2: module_2_revision, + unit_1: unit_1_revision, + unit_2: unit_2_revision, + root_container: container_revision + } + end + + defp create_another_elixir_project(_) do + author = insert(:author) + project = insert(:project, authors: [author]) + + # revisions... + ## pages... + page_1_revision = + insert(:revision, + resource_type_id: ResourceType.get_id_by_type("page"), + title: "Start here", + graded: false + ) + + page_2_revision = + insert(:revision, + resource_type_id: ResourceType.get_id_by_type("page"), + title: "Page 2", + graded: false + ) + + ## modules... + module_1_revision = + insert(:revision, %{ + resource_type_id: Oli.Resources.ResourceType.get_id_by_type("container"), + children: [page_1_revision.resource_id, page_2_revision.resource_id], + title: "How to use this course" + }) + + ## units... + unit_1_revision = + insert(:revision, %{ + resource_type_id: Oli.Resources.ResourceType.get_id_by_type("container"), + children: [module_1_revision.resource_id], + title: "Introduction" + }) + + ## root container... + container_revision = + insert(:revision, %{ + resource_type_id: Oli.Resources.ResourceType.get_id_by_type("container"), + children: [unit_1_revision.resource_id], + title: "Root Container" + }) + + all_revisions = + [ + page_1_revision, + page_2_revision, + module_1_revision, + unit_1_revision, + container_revision + ] + + # asociate resources to project + Enum.each(all_revisions, fn revision -> + insert(:project_resource, %{ + project_id: project.id, + resource_id: revision.resource_id + }) + end) + + # publish project + publication = + insert(:publication, %{project: project, root_resource_id: container_revision.resource_id}) + + # publish resources + Enum.each(all_revisions, fn revision -> + insert(:published_resource, %{ + publication: publication, + resource: revision.resource, + revision: revision, + author: author + }) + end) + + # create section... + section = + insert(:section, + base_project: project, + title: "Another course!", + analytics_version: :v2 + ) + + {:ok, section} = Sections.create_section_resources(section, publication) + {:ok, _} = Sections.rebuild_contained_pages(section) + + %{ + section: section, + page_1: page_1_revision, + page_2: page_2_revision, + module_1: module_1_revision, + unit_1: unit_1_revision, + root_container: container_revision + } + end + + defp create_attempt(student, section, revision) do + resource_access = get_or_insert_resource_access(student, section, revision) + + resource_attempt = + insert(:resource_attempt, %{ + resource_access: resource_access, + revision: revision, + date_submitted: ~U[2023-11-14 20:00:00Z], + date_evaluated: ~U[2023-11-14 20:30:00Z], + score: 5, + out_of: 10, + lifecycle_state: :evaluated, + content: %{model: []} + }) + + resource_attempt + end + + defp get_or_insert_resource_access(student, section, revision) do + Oli.Repo.get_by( + ResourceAccess, + resource_id: revision.resource_id, + section_id: section.id, + user_id: student.id + ) + |> case do + nil -> + insert(:resource_access, %{ + user: student, + section: section, + resource: revision.resource, + score: 5, + out_of: 10 + }) + + resource_access -> + resource_access + end + end + + def enroll_and_visit_section(%{user: user, section: section} = _attrs) do + Sections.enroll(user.id, section.id, [ContextRoles.get_role(:context_learner)]) + Sections.mark_section_visited_for_student(section, user) + end + + describe "user" do + test "can not access page when it is not logged in", %{conn: conn} do + section = insert(:section) + student = insert(:user) + + Sections.enroll(student.id, section.id, [ContextRoles.get_role(:context_learner)]) + + {:error, {:redirect, %{to: redirect_path}}} = + live(conn, live_view_assignments_live_route(section.slug)) + + assert redirect_path == + "/?request_path=%2Fsections%2F#{section.slug}%2Fassignments§ion=#{section.slug}" + end + end + + describe "not enrolled student" do + setup [:user_conn, :create_elixir_project] + + test "can not access when not enrolled to course", %{conn: conn, section: section} do + {:error, {:redirect, %{to: redirect_path, flash: _flash_msg}}} = + live(conn, live_view_assignments_live_route(section.slug)) + + assert redirect_path == "/unauthorized" + end + end + + describe "student" do + setup [:user_conn, :create_elixir_project, :enroll_and_visit_section] + + test "can access when enrolled to course", %{conn: conn, section: section} do + {:ok, view, _html} = live(conn, live_view_assignments_live_route(section.slug)) + + assert has_element?(view, "h1", "Assignments") + end + + test "can navigate to an assignment", %{ + conn: conn, + section: section, + page_1: page_1 + } do + {:ok, view, _html} = live(conn, live_view_assignments_live_route(section.slug)) + + {:error, {:live_redirect, %{kind: :push, to: path}}} = + view + |> element( + "div[role='assignment detail'][id='assignment_#{page_1.resource_id}'] a", + "Start here" + ) + |> render_click() + + assert path == + "/sections/#{section.slug}/lesson/#{page_1.slug}?request_path=%2Fsections%2F#{section.slug}%2Fassignments" + end + + test "page icons correspond to the resource purpose and completed state", %{ + conn: conn, + section: section, + page_1: page_1, + page_2: page_2, + page_3: page_3, + page_4: page_4, + user: user + } do + _completed_page = + create_attempt(user, section, page_2) + + {:ok, view, _html} = live(conn, live_view_assignments_live_route(section.slug)) + + assert element( + view, + "div[role='assignment detail'][id='assignment_#{page_1.resource_id}'] div[role='page icon'] svg" + ) + |> render() =~ "flag icon" + + # page 2 is completed, so we see it's checked icon + assert element( + view, + "div[role='assignment detail'][id='assignment_#{page_2.resource_id}'] div[role='page icon'] svg" + ) + |> render() =~ "square checked icon" + + # and can see it's attempt summary + assert has_element?( + view, + "div[role='assignment detail'][id='assignment_#{page_2.resource_id}'] span", + "Attempt 1 of ∞" + ) + + assert has_element?( + view, + "div[role='assignment detail'][id='assignment_#{page_2.resource_id}'] span", + "5 / 10" + ) + + assert element( + view, + "div[role='assignment detail'][id='assignment_#{page_3.resource_id}'] div[role='page icon'] svg" + ) + |> render() =~ "flag icon" + + assert element( + view, + "div[role='assignment detail'][id='assignment_#{page_4.resource_id}'] div[role='page icon'] svg" + ) + |> render() =~ "world icon" + end + + test "can see completed pages summary", %{ + conn: conn, + section: section, + page_1: page_1, + page_2: page_2, + user: user + } do + _completed_page = + create_attempt(user, section, page_1) + + _completed_page = + create_attempt(user, section, page_2) + + {:ok, view, _html} = live(conn, live_view_assignments_live_route(section.slug)) + + assert has_element?(view, "span", "2 of 4 Assignments") + end + + test "gets a `no assignments` message when there are not assignments to show", %{ + conn: conn, + user: user + } do + %{section: section} = create_another_elixir_project(%{}) + + enroll_and_visit_section(%{user: user, section: section}) + + {:ok, view, _html} = live(conn, live_view_assignments_live_route(section.slug)) + + assert has_element?(view, "span", "There are no assignments") + end + end +end diff --git a/test/oli_web/live/delivery/student/learn_live_test.exs b/test/oli_web/live/delivery/student/learn_live_test.exs index 6ed0ee03d10..16078ce5d70 100644 --- a/test/oli_web/live/delivery/student/learn_live_test.exs +++ b/test/oli_web/live/delivery/student/learn_live_test.exs @@ -2694,7 +2694,7 @@ defmodule OliWeb.Delivery.Student.ContentLiveTest do |> element(~s{nav[id=desktop-nav-menu] a}, "Schedule") |> render_click() - assert_redirect(view, "/sections/#{section.slug}/assignments?sidebar_expanded=true") + assert_redirect(view, "/sections/#{section.slug}/student_schedule?sidebar_expanded=true") {:ok, view, _html} = live(conn, Utils.learn_live_path(section.slug, sidebar_expanded: false)) @@ -2705,7 +2705,7 @@ defmodule OliWeb.Delivery.Student.ContentLiveTest do |> element(~s{nav[id="desktop-nav-menu"] a[id="schedule_nav_link"])}) |> render_click() - assert_redirect(view, "/sections/#{section.slug}/assignments?sidebar_expanded=false") + assert_redirect(view, "/sections/#{section.slug}/student_schedule?sidebar_expanded=false") end test "exit course button redirects to the student workspace", %{ diff --git a/test/oli_web/live/delivery/student/lesson_live_test.exs b/test/oli_web/live/delivery/student/lesson_live_test.exs index e63697d8237..931f39da9f6 100644 --- a/test/oli_web/live/delivery/student/lesson_live_test.exs +++ b/test/oli_web/live/delivery/student/lesson_live_test.exs @@ -1230,7 +1230,7 @@ defmodule OliWeb.Delivery.Student.LessonLiveTest do Sections.mark_section_visited_for_student(section, user) # when the request path is not the learn view, it keeps it when navigating between pages - request_path = ~p"/sections/#{section.slug}/assignments" + request_path = ~p"/sections/#{section.slug}/student_schedule" {:ok, view, _html} = live( diff --git a/test/oli_web/live/delivery/student/review_live_test.exs b/test/oli_web/live/delivery/student/review_live_test.exs index 755c740a6f1..f6252b27ccd 100644 --- a/test/oli_web/live/delivery/student/review_live_test.exs +++ b/test/oli_web/live/delivery/student/review_live_test.exs @@ -493,7 +493,7 @@ defmodule OliWeb.Delivery.Student.ReviewLiveTest do attempt = create_attempt(user, section, page_1) # when the request path is not the learn view, it keeps it when navigating between pages - request_path = ~p"/sections/#{section.slug}/assignments" + request_path = ~p"/sections/#{section.slug}/student_schedule" {:ok, view, _html} = live( diff --git a/test/oli_web/live/delivery/student/schedule_live_test.exs b/test/oli_web/live/delivery/student/schedule_live_test.exs index f5b9b147fff..fa546440381 100644 --- a/test/oli_web/live/delivery/student/schedule_live_test.exs +++ b/test/oli_web/live/delivery/student/schedule_live_test.exs @@ -567,10 +567,10 @@ defmodule OliWeb.Delivery.Student.ScheduleLiveTest do Sections.enroll(student.id, section.id, [ContextRoles.get_role(:context_learner)]) {:error, {:redirect, %{to: redirect_path}}} = - live(conn, ~p"/sections/#{section.slug}/assignments") + live(conn, ~p"/sections/#{section.slug}/student_schedule") assert redirect_path == - "/?request_path=%2Fsections%2F#{section.slug}%2Fassignments§ion=#{section.slug}" + "/?request_path=%2Fsections%2F#{section.slug}%2Fstudent_schedule§ion=#{section.slug}" end end @@ -579,7 +579,7 @@ defmodule OliWeb.Delivery.Student.ScheduleLiveTest do test "can not access when not enrolled to course", %{conn: conn, section: section} do {:error, {:redirect, %{to: redirect_path, flash: _flash_msg}}} = - live(conn, ~p"/sections/#{section.slug}/assignments") + live(conn, ~p"/sections/#{section.slug}/student_schedule") assert redirect_path == "/unauthorized" end @@ -588,7 +588,7 @@ defmodule OliWeb.Delivery.Student.ScheduleLiveTest do Sections.enroll(user.id, section.id, [ContextRoles.get_role(:context_learner)]) Sections.mark_section_visited_for_student(section, user) - {:ok, view, _html} = live(conn, ~p"/sections/#{section.slug}/assignments") + {:ok, view, _html} = live(conn, ~p"/sections/#{section.slug}/student_schedule") assert has_element?(view, "h1", "Course Schedule") end @@ -620,7 +620,7 @@ defmodule OliWeb.Delivery.Student.ScheduleLiveTest do false ) - {:ok, view, _html} = live(conn, ~p"/sections/#{section.slug}/assignments") + {:ok, view, _html} = live(conn, ~p"/sections/#{section.slug}/student_schedule") # open attempts summary for page 3 view @@ -709,7 +709,7 @@ defmodule OliWeb.Delivery.Student.ScheduleLiveTest do false ) - {:ok, view, _html} = live(conn, ~p"/sections/#{section.slug}/assignments") + {:ok, view, _html} = live(conn, ~p"/sections/#{section.slug}/student_schedule") # open attempts summary for page 4 view @@ -780,7 +780,7 @@ defmodule OliWeb.Delivery.Student.ScheduleLiveTest do Sections.enroll(user.id, section.id, [ContextRoles.get_role(:context_learner)]) Sections.mark_section_visited_for_student(section, user) - {:ok, view, _html} = live(conn, ~p"/sections/#{section.slug}/assignments") + {:ok, view, _html} = live(conn, ~p"/sections/#{section.slug}/student_schedule") assert has_element?(view, "h1", "Course Schedule")