From 91cea3bdb0830d05a75871bce84a1360820eed8c Mon Sep 17 00:00:00 2001 From: Will Ceolin Date: Sun, 14 Jul 2024 15:04:28 -0300 Subject: [PATCH] School: Remove kind field --- lib/layouts/components/app_menu.ex | 2 +- lib/layouts/menu_utils.ex | 4 +- lib/organizations/school_live/school_new.ex | 4 - .../school_live/school_new.html.heex | 1 - lib/organizations/school_plug.ex | 4 +- lib/organizations/school_schema.ex | 16 +- priv/gettext/courses.pot | 35 +-- priv/gettext/de/LC_MESSAGES/courses.po | 35 +-- priv/gettext/de/LC_MESSAGES/default.po | 25 +- priv/gettext/de/LC_MESSAGES/errors.po | 13 +- priv/gettext/de/LC_MESSAGES/orgs.po | 214 +----------------- priv/gettext/default.pot | 25 +- priv/gettext/en/LC_MESSAGES/courses.po | 35 +-- priv/gettext/en/LC_MESSAGES/default.po | 25 +- priv/gettext/en/LC_MESSAGES/errors.po | 13 +- priv/gettext/en/LC_MESSAGES/orgs.po | 214 +----------------- priv/gettext/errors.pot | 13 +- priv/gettext/orgs.pot | 214 +----------------- priv/gettext/pt/LC_MESSAGES/courses.po | 35 +-- priv/gettext/pt/LC_MESSAGES/default.po | 25 +- priv/gettext/pt/LC_MESSAGES/errors.po | 13 +- priv/gettext/pt/LC_MESSAGES/orgs.po | 214 +----------------- priv/gettext/zh_TW/LC_MESSAGES/courses.po | 35 +-- priv/gettext/zh_TW/LC_MESSAGES/default.po | 25 +- priv/gettext/zh_TW/LC_MESSAGES/errors.po | 13 +- priv/gettext/zh_TW/LC_MESSAGES/orgs.po | 214 +----------------- ...231122122119_add_kind_field_to_schools.exs | 13 -- priv/repo/seed/README.md | 10 +- priv/repo/seed/schools.ex | 15 +- priv/repo/seed/seed.ex | 12 - priv/repo/seeds.exs | 3 +- test/content/course_list_live_test.exs | 29 +-- test/dashboard/dashboard_home_test.exs | 25 +- test/dashboard/school_view_test.exs | 2 +- .../organizations_context_test.exs | 27 --- test/organizations/school_new_live_test.exs | 87 +------ test/support/conn_case.ex | 3 +- 37 files changed, 208 insertions(+), 1484 deletions(-) delete mode 100644 priv/repo/migrations/20231122122119_add_kind_field_to_schools.exs diff --git a/lib/layouts/components/app_menu.ex b/lib/layouts/components/app_menu.ex index f87b35a8..14e2818a 100644 --- a/lib/layouts/components/app_menu.ex +++ b/lib/layouts/components/app_menu.ex @@ -21,7 +21,7 @@ defmodule ZoonkWeb.Components.Layouts.AppMenu do title={gettext("Courses")} /> - <.menu_item :if={@school && @school.kind != :white_label} navigate={~p"/schools/new"} icon="tabler-rocket" title={gettext("Create school")} /> + <.menu_item :if={@school && is_nil(@school.school_id)} navigate={~p"/schools/new"} icon="tabler-rocket" title={gettext("Create school")} /> diff --git a/lib/layouts/menu_utils.ex b/lib/layouts/menu_utils.ex index 3120a145..b3fd4738 100644 --- a/lib/layouts/menu_utils.ex +++ b/lib/layouts/menu_utils.ex @@ -90,10 +90,10 @@ defmodule ZoonkWeb.Layouts.MenuUtils do def home_page?(_active_page, _course, _last_course_slug), do: false @spec dashboard_school_menu(School.t()) :: list() - def dashboard_school_menu(%School{kind: kind, school_id: school_id}) do + def dashboard_school_menu(%School{school_id: school_id}) do [ %{link: ~p"/dashboard", view: [:dashboard_home], title: gettext("Overview"), visible?: true}, - %{link: ~p"/dashboard/schools", view: [:dashboard_schoollist, :dashboard_schoolview], title: gettext("Schools"), visible?: kind != :white_label}, + %{link: ~p"/dashboard/schools", view: [:dashboard_schoollist, :dashboard_schoolview], title: gettext("Schools"), visible?: is_nil(school_id)}, %{link: ~p"/dashboard/users", view: [:dashboard_schooluserlist, :dashboard_schooluserview], title: dgettext("orgs", "Users"), visible?: true}, %{link: ~p"/dashboard/edit/logo", view: [:dashboard_schooledit_logo], title: gettext("Logo"), visible?: true}, %{link: ~p"/dashboard/edit/icon", view: [:dashboard_schooledit_icon], title: gettext("Icon"), visible?: true}, diff --git a/lib/organizations/school_live/school_new.ex b/lib/organizations/school_live/school_new.ex index a1621890..0b8276c0 100644 --- a/lib/organizations/school_live/school_new.ex +++ b/lib/organizations/school_live/school_new.ex @@ -49,10 +49,6 @@ defmodule ZoonkWeb.Live.SchoolNew do end end - defp school_kind_options do - [{dgettext("orgs", "White label"), "white_label"}, {dgettext("orgs", "SaaS"), "saas"}, {dgettext("orgs", "Marketplace"), "marketplace"}] - end - defp redirect_to_dashboard(socket, _new_school, nil), do: redirect(socket, to: ~p"/dashboard") defp redirect_to_dashboard(socket, %School{} = new_school, %School{} = app), do: redirect(socket, external: "https://#{new_school.slug}.#{app.custom_domain}/dashboard") diff --git a/lib/organizations/school_live/school_new.html.heex b/lib/organizations/school_live/school_new.html.heex index aaf3801f..72d7689a 100644 --- a/lib/organizations/school_live/school_new.html.heex +++ b/lib/organizations/school_live/school_new.html.heex @@ -2,7 +2,6 @@ <.simple_form for={@form} id="school-form" phx-submit="save" phx-change="validate"> <.header icon="tabler-rocket"><%= dgettext("orgs", "Create school") %> - <.input :if={is_nil(@app)} type="select" field={@form[:kind]} label={dgettext("orgs", "App type")} options={school_kind_options()} required /> <.input type="text" field={@form[:name]} label={dgettext("orgs", "School name")} required /> <.input type="email" field={@form[:email]} label={dgettext("orgs", "School email")} required /> <.input type="text" field={@form[:slug]} label={dgettext("orgs", "Nickname")} helper={dgettext("orgs", "Choose a nickname to acess your school profile")} required /> diff --git a/lib/organizations/school_plug.ex b/lib/organizations/school_plug.ex index ef264f64..48e6bfae 100644 --- a/lib/organizations/school_plug.ex +++ b/lib/organizations/school_plug.ex @@ -45,8 +45,8 @@ defmodule ZoonkWeb.Plugs.School do def check_school_setup(%{request_path: "/schools/new"} = conn, opts), do: check_school_setup(conn, opts, conn.assigns.school) def check_school_setup(conn, _opts), do: conn - # If the school is already configured, we don't want to show the configuration page. - defp check_school_setup(_conn, _opts, %School{kind: :white_label}), do: raise(ZoonkWeb.PermissionError, code: :school_already_configured) + # We don't want to show the creation page for child schools. + defp check_school_setup(_conn, _opts, %School{} = school) when school.school_id != nil, do: raise(ZoonkWeb.PermissionError, code: :school_already_configured) defp check_school_setup(conn, _opts, _school), do: conn @doc """ diff --git a/lib/organizations/school_schema.ex b/lib/organizations/school_schema.ex index eb729296..eb1d0474 100644 --- a/lib/organizations/school_schema.ex +++ b/lib/organizations/school_schema.ex @@ -22,7 +22,6 @@ defmodule Zoonk.Organizations.School do field :currency, :string field :custom_domain, :string field :email, :string - field :kind, Ecto.Enum, values: [:marketplace, :saas, :white_label], default: :white_label field :icon, :string field :logo, :string field :name, :string @@ -44,7 +43,7 @@ defmodule Zoonk.Organizations.School do @spec create_changeset(Ecto.Schema.t(), map()) :: Ecto.Changeset.t() def create_changeset(school, attrs) do school - |> cast(attrs, [:kind | shared_cast_fields()]) + |> cast(attrs, shared_cast_fields()) |> default_changeset() end @@ -67,7 +66,6 @@ defmodule Zoonk.Organizations.School do |> validate_slug(:slug) |> validate_unique_slug() |> validate_custom_domain() - |> validate_kind() |> validate_allow_guests() end @@ -103,18 +101,6 @@ defmodule Zoonk.Organizations.School do put_change(changeset, :allow_guests?, allow_guests?) end - # Child schools must have a `white_label` kind. A school has a parent school when `school_id` is not `nil`. - defp validate_kind(changeset) do - kind = get_field(changeset, :kind) - school_id = get_field(changeset, :school_id) - - if school_id && kind != :white_label do - add_error(changeset, :kind, dgettext("errors", "must be white_label")) - else - changeset - end - end - # Don't allow to add a subdomain as `custom_domain` if that domain already exists. defp validate_custom_domain(changeset) do custom_domain = get_change(changeset, :custom_domain) diff --git a/priv/gettext/courses.pot b/priv/gettext/courses.pot index 65b64d26..8a38d00b 100644 --- a/priv/gettext/courses.pot +++ b/priv/gettext/courses.pot @@ -21,7 +21,7 @@ msgstr "" msgid "Advanced" msgstr "" -#: lib/content/course_live/lesson_completed.html.heex:19 +#: lib/content/course_live/lesson_completed.html.heex:21 #, elixir-autogen, elixir-format msgid "Back to the course" msgstr "" @@ -31,7 +31,7 @@ msgstr "" msgid "Beginner" msgstr "" -#: lib/content/course_live/lesson_play.html.heex:95 +#: lib/content/course_live/lesson_play.html.heex:94 #, elixir-autogen, elixir-format msgid "Confirming..." msgstr "" @@ -41,7 +41,7 @@ msgstr "" msgid "Enrolled successfully!" msgstr "" -#: lib/content/course_live/lesson_completed.ex:27 +#: lib/content/course_live/lesson_completed.ex:29 #, elixir-autogen, elixir-format msgid "Excellent!" msgstr "" @@ -56,12 +56,12 @@ msgstr "" msgid "Failed to enroll" msgstr "" -#: lib/content/course_live/lesson_completed.ex:29 +#: lib/content/course_live/lesson_completed.ex:31 #, elixir-autogen, elixir-format msgid "Good!" msgstr "" -#: lib/content/course_live/lesson_completed.html.heex:4 +#: lib/content/course_live/lesson_completed.html.heex:5 #, elixir-autogen, elixir-format msgid "Illustration of a green alien" msgstr "" @@ -71,17 +71,17 @@ msgstr "" msgid "Intermediate" msgstr "" -#: lib/content/course_live/lesson_play.html.heex:99 +#: lib/content/course_live/lesson_play.html.heex:98 #, elixir-autogen, elixir-format msgid "Next step" msgstr "" -#: lib/content/course_live/lesson_completed.ex:30 +#: lib/content/course_live/lesson_completed.ex:32 #, elixir-autogen, elixir-format msgid "Not bad!" msgstr "" -#: lib/content/course_live/lesson_completed.ex:26 +#: lib/content/course_live/lesson_completed.ex:28 #, elixir-autogen, elixir-format msgid "Perfect!" msgstr "" @@ -96,22 +96,22 @@ msgstr "" msgid "That's incorrect." msgstr "" -#: lib/content/course_live/lesson_completed.ex:31 +#: lib/content/course_live/lesson_completed.ex:33 #, elixir-autogen, elixir-format msgid "There's room for improvement" msgstr "" -#: lib/content/course_live/lesson_play.ex:93 +#: lib/content/course_live/lesson_play.ex:90 #, elixir-autogen, elixir-format msgid "Unable to complete lesson" msgstr "" -#: lib/content/course_live/lesson_play.ex:56 +#: lib/content/course_live/lesson_play.ex:53 #, elixir-autogen, elixir-format msgid "Unable to select option" msgstr "" -#: lib/content/course_live/lesson_completed.ex:28 +#: lib/content/course_live/lesson_completed.ex:30 #, elixir-autogen, elixir-format msgid "Very good!" msgstr "" @@ -121,7 +121,7 @@ msgstr "" msgid "Well done!" msgstr "" -#: lib/content/course_live/lesson_completed.html.heex:11 +#: lib/content/course_live/lesson_completed.html.heex:13 #, elixir-autogen, elixir-format msgid "You got %{correct} out of %{total} answers right." msgstr "" @@ -131,7 +131,7 @@ msgstr "" msgid "Lesson cover" msgstr "" -#: lib/content/course_live/lesson_play.html.heex:16 +#: lib/content/course_live/lesson_play.html.heex:15 #, elixir-autogen, elixir-format msgid "Your progress in this lesson will be lost. Would you like to quit?" msgstr "" @@ -151,7 +151,12 @@ msgstr "" msgid "No courses" msgstr "" -#: lib/content/course_live/lesson_play.ex:79 +#: lib/content/course_live/lesson_play.ex:76 #, elixir-autogen, elixir-format msgid "Unable to send answer" msgstr "" + +#: lib/content/course_live/lesson_completed.html.heex:12 +#, elixir-autogen, elixir-format +msgid "You got all the answers correct!" +msgstr "" diff --git a/priv/gettext/de/LC_MESSAGES/courses.po b/priv/gettext/de/LC_MESSAGES/courses.po index 3fce468b..561ea95b 100644 --- a/priv/gettext/de/LC_MESSAGES/courses.po +++ b/priv/gettext/de/LC_MESSAGES/courses.po @@ -21,7 +21,7 @@ msgstr "Ein Antrag auf Einschreibung wurde an den Kursleiter geschickt." msgid "Advanced" msgstr "Erweitert" -#: lib/content/course_live/lesson_completed.html.heex:19 +#: lib/content/course_live/lesson_completed.html.heex:21 #, elixir-autogen, elixir-format msgid "Back to the course" msgstr "Zurück zum Kurs" @@ -31,7 +31,7 @@ msgstr "Zurück zum Kurs" msgid "Beginner" msgstr "Anfänger" -#: lib/content/course_live/lesson_play.html.heex:95 +#: lib/content/course_live/lesson_play.html.heex:94 #, elixir-autogen, elixir-format msgid "Confirming..." msgstr "Bestätigen..." @@ -41,7 +41,7 @@ msgstr "Bestätigen..." msgid "Enrolled successfully!" msgstr "Erfolgreich eingeschrieben!" -#: lib/content/course_live/lesson_completed.ex:27 +#: lib/content/course_live/lesson_completed.ex:29 #, elixir-autogen, elixir-format msgid "Excellent!" msgstr "Ausgezeichnet!" @@ -56,12 +56,12 @@ msgstr "Experte" msgid "Failed to enroll" msgstr "Einschreibung fehlgeschlagen" -#: lib/content/course_live/lesson_completed.ex:29 +#: lib/content/course_live/lesson_completed.ex:31 #, elixir-autogen, elixir-format msgid "Good!" msgstr "Gut!" -#: lib/content/course_live/lesson_completed.html.heex:4 +#: lib/content/course_live/lesson_completed.html.heex:5 #, elixir-autogen, elixir-format msgid "Illustration of a green alien" msgstr "Illustration eines grünen Außerirdischen" @@ -71,17 +71,17 @@ msgstr "Illustration eines grünen Außerirdischen" msgid "Intermediate" msgstr "Zwischenbericht" -#: lib/content/course_live/lesson_play.html.heex:99 +#: lib/content/course_live/lesson_play.html.heex:98 #, elixir-autogen, elixir-format msgid "Next step" msgstr "Nächster Schritt" -#: lib/content/course_live/lesson_completed.ex:30 +#: lib/content/course_live/lesson_completed.ex:32 #, elixir-autogen, elixir-format msgid "Not bad!" msgstr "Nicht schlecht!" -#: lib/content/course_live/lesson_completed.ex:26 +#: lib/content/course_live/lesson_completed.ex:28 #, elixir-autogen, elixir-format msgid "Perfect!" msgstr "Perfekt!" @@ -96,22 +96,22 @@ msgstr "Antrag auf Beitritt" msgid "That's incorrect." msgstr "Das ist nicht richtig." -#: lib/content/course_live/lesson_completed.ex:31 +#: lib/content/course_live/lesson_completed.ex:33 #, elixir-autogen, elixir-format msgid "There's room for improvement" msgstr "Es gibt Raum für Verbesserungen" -#: lib/content/course_live/lesson_play.ex:93 +#: lib/content/course_live/lesson_play.ex:90 #, elixir-autogen, elixir-format msgid "Unable to complete lesson" msgstr "Lektion kann nicht abgeschlossen werden" -#: lib/content/course_live/lesson_play.ex:56 +#: lib/content/course_live/lesson_play.ex:53 #, elixir-autogen, elixir-format msgid "Unable to select option" msgstr "Option kann nicht ausgewählt werden" -#: lib/content/course_live/lesson_completed.ex:28 +#: lib/content/course_live/lesson_completed.ex:30 #, elixir-autogen, elixir-format msgid "Very good!" msgstr "Sehr gut!" @@ -121,7 +121,7 @@ msgstr "Sehr gut!" msgid "Well done!" msgstr "Gut gemacht!" -#: lib/content/course_live/lesson_completed.html.heex:11 +#: lib/content/course_live/lesson_completed.html.heex:13 #, elixir-autogen, elixir-format msgid "You got %{correct} out of %{total} answers right." msgstr "Du hast %{correct} von %{total} der Antworten richtig." @@ -131,7 +131,7 @@ msgstr "Du hast %{correct} von %{total} der Antworten richtig." msgid "Lesson cover" msgstr "Lektions Cover" -#: lib/content/course_live/lesson_play.html.heex:16 +#: lib/content/course_live/lesson_play.html.heex:15 #, elixir-autogen, elixir-format msgid "Your progress in this lesson will be lost. Would you like to quit?" msgstr "Ihr Fortschritt in dieser Lektion wird verloren gehen. Möchten Sie aufhören?" @@ -151,7 +151,12 @@ msgstr "Beginnen Sie mit der Teilnahme an einem Kurs." msgid "No courses" msgstr "Keine Kurse" -#: lib/content/course_live/lesson_play.ex:79 +#: lib/content/course_live/lesson_play.ex:76 #, elixir-autogen, elixir-format msgid "Unable to send answer" msgstr "Senden der Antwort fehlgeschlagen" + +#: lib/content/course_live/lesson_completed.html.heex:12 +#, elixir-autogen, elixir-format +msgid "You got all the answers correct!" +msgstr "Du hast alle Antworten richtig!" diff --git a/priv/gettext/de/LC_MESSAGES/default.po b/priv/gettext/de/LC_MESSAGES/default.po index 03e61cb7..bac2fe65 100644 --- a/priv/gettext/de/LC_MESSAGES/default.po +++ b/priv/gettext/de/LC_MESSAGES/default.po @@ -73,7 +73,7 @@ msgstr "Ups, etwas ist schief gelaufen! Bitte überprüfen Sie die unten stehend #: lib/dashboard/lessons/components/option_list.ex:95 #: lib/dashboard/schools/school_edit.html.heex:8 #: lib/dashboard/schools/school_user_list.html.heex:68 -#: lib/organizations/school_live/school_new.html.heex:10 +#: lib/organizations/school_live/school_new.html.heex:9 #, elixir-autogen, elixir-format msgid "Saving..." msgstr "Speichert..." @@ -153,7 +153,7 @@ msgstr "Name" msgid "Profile" msgstr "Profil" -#: lib/content/course_live/lesson_play.html.heex:99 +#: lib/content/course_live/lesson_play.html.heex:98 #, elixir-autogen, elixir-format msgid "Confirm" msgstr "Bestätigen" @@ -197,7 +197,7 @@ msgstr "Zurücksetzen..." msgid "Username or email address" msgstr "Benutzername oder E-Mail Adresse" -#: lib/content/course_live/lesson_play.html.heex:19 +#: lib/content/course_live/lesson_play.html.heex:18 #, elixir-autogen, elixir-format, fuzzy msgid "Close" msgstr "Schließen" @@ -262,7 +262,7 @@ msgstr "Seitenleiste schließen" #: lib/components/delete_item.ex:17 #: lib/components/delete_item.ex:21 #: lib/dashboard/schools/school_edit.ex:93 -#: lib/layouts/menu_utils.ex:102 +#: lib/layouts/menu_utils.ex:101 #: lib/layouts/templates/app.html.heex:78 #: lib/layouts/templates/dashboard_course.html.heex:50 #, elixir-autogen, elixir-format @@ -357,13 +357,6 @@ msgstr "Suchen..." msgid "No results found." msgstr "Keine Ergebnisse gefunden." -#: lib/content/course_live/lesson_play.html.heex:113 -#, elixir-autogen, elixir-format -msgid "Contact school" -msgstr "Kontakt Schule" - -#: lib/dashboard/schools/school_billing.ex:53 -#: lib/dashboard/schools/school_billing.ex:55 #: lib/layouts/components/app_menu.ex:39 #: lib/support/contact_live/contact.ex:15 #: lib/support/contact_live/contact.html.heex:3 @@ -376,21 +369,11 @@ msgstr "Kontaktieren Sie uns" msgid "Message sent!" msgstr "Nachricht gesendet!" -#: lib/content/course_live/lesson_play.html.heex:106 -#, elixir-autogen, elixir-format -msgid "Subscription expired" -msgstr "Abonnement abgelaufen" - #: lib/support/contact_live/contact.ex:29 #, elixir-autogen, elixir-format, fuzzy msgid "There was an error sending your message. Please try again." msgstr "Es gab einen Fehler beim Senden Ihrer Nachricht. Bitte versuchen Sie es erneut." -#: lib/content/course_live/lesson_play.html.heex:109 -#, elixir-autogen, elixir-format -msgid "Your school manager needs to renew their subscription. Please, contact them." -msgstr "Ihr Schulleiter muss sein Abonnement erneuern. Please, contact them." - #: lib/layouts/templates/app.html.heex:54 #, elixir-autogen, elixir-format msgid "Setup" diff --git a/priv/gettext/de/LC_MESSAGES/errors.po b/priv/gettext/de/LC_MESSAGES/errors.po index 06976c82..fd6fbc57 100644 --- a/priv/gettext/de/LC_MESSAGES/errors.po +++ b/priv/gettext/de/LC_MESSAGES/errors.po @@ -15,7 +15,7 @@ msgid "can't be blank" msgstr "darf nicht leer sein" ## From Ecto.Changeset.unique_constraint/3 -#: lib/organizations/school_schema.ex:125 +#: lib/organizations/school_schema.ex:109 #, elixir-autogen msgid "has already been taken" msgstr "ist bereits vergeben" @@ -175,8 +175,8 @@ msgstr "Sie sind für diesen Kurs nicht eingeschrieben" msgid "Your enrollment is pending approval" msgstr "Ihre Anmeldung muss noch genehmigt werden" -#: lib/organizations/school_schema.ex:66 -#: lib/organizations/school_schema.ex:67 +#: lib/organizations/school_schema.ex:64 +#: lib/organizations/school_schema.ex:65 #, elixir-autogen, elixir-format, fuzzy msgid "must start with https://" msgstr "muss mit https:// beginnen" @@ -196,17 +196,12 @@ msgstr "Die einzige Lektion kann nicht gelöscht werden" msgid "must have a domain name" msgstr "muss einen Domänennamen haben" -#: lib/organizations/school_schema.ex:114 -#, elixir-autogen, elixir-format -msgid "must be white_label" -msgstr "muss white_label sein" - #: lib/error/permission_error.ex:15 #, elixir-autogen, elixir-format msgid "Permission denied" msgstr "Zugriff verweigert" -#: lib/organizations/school_schema.ex:65 +#: lib/organizations/school_schema.ex:63 #, elixir-autogen, elixir-format msgid "is not allowed" msgstr "ist nicht erlaubt" diff --git a/priv/gettext/de/LC_MESSAGES/orgs.po b/priv/gettext/de/LC_MESSAGES/orgs.po index ef7063fa..e9f70191 100644 --- a/priv/gettext/de/LC_MESSAGES/orgs.po +++ b/priv/gettext/de/LC_MESSAGES/orgs.po @@ -11,20 +11,20 @@ msgstr "" "Language: de\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: lib/organizations/school_live/school_new.html.heex:8 +#: lib/organizations/school_live/school_new.html.heex:7 #, elixir-autogen, elixir-format msgid "Choose a nickname to acess your school profile" msgstr "Wähle einen Spitznamen, um auf dein Schulprofil zuzugreifen" #: lib/organizations/school_live/school_new.ex:12 #: lib/organizations/school_live/school_new.html.heex:3 -#: lib/organizations/school_live/school_new.html.heex:11 +#: lib/organizations/school_live/school_new.html.heex:10 #, elixir-autogen, elixir-format msgid "Create school" msgstr "Schule erstellen" #: lib/dashboard/schools/school_edit.html.heex:12 -#: lib/organizations/school_live/school_new.html.heex:8 +#: lib/organizations/school_live/school_new.html.heex:7 #, elixir-autogen, elixir-format msgid "Nickname" msgstr "Spitzname" @@ -35,13 +35,13 @@ msgid "School could not be created" msgstr "Schule konnte nicht erstellt werden" #: lib/dashboard/schools/school_edit.html.heex:14 -#: lib/organizations/school_live/school_new.html.heex:7 +#: lib/organizations/school_live/school_new.html.heex:6 #, elixir-autogen, elixir-format msgid "School email" msgstr "E-Mail der Schule" #: lib/dashboard/schools/school_edit.html.heex:13 -#: lib/organizations/school_live/school_new.html.heex:6 +#: lib/organizations/school_live/school_new.html.heex:5 #, elixir-autogen, elixir-format msgid "School name" msgstr "Schulname" @@ -104,7 +104,6 @@ msgstr "Konnte Benutzer nicht ablehnen!" msgid "Could not remove user!" msgstr "Konnte Benutzer nicht entfernen!" -#: lib/billing/billing_utils.ex:60 #: lib/dashboard/courses/course_user_list.html.heex:26 #: lib/dashboard/schools/school_user_list.html.heex:25 #, elixir-autogen, elixir-format @@ -607,26 +606,6 @@ msgstr "E-Mail Bestätigung benötigt?" msgid "When checked, users will be required to confirm their email address before they can log in." msgstr "Wenn diese Option aktiviert ist, müssen Benutzer ihre E-Mail-Adresse bestätigen, bevor sie sich anmelden können." -#: lib/organizations/school_live/school_new.html.heex:5 -#, elixir-autogen, elixir-format -msgid "App type" -msgstr "App Typ" - -#: lib/organizations/school_live/school_new.ex:53 -#, elixir-autogen, elixir-format -msgid "Marketplace" -msgstr "Marktplatz" - -#: lib/organizations/school_live/school_new.ex:53 -#, elixir-autogen, elixir-format -msgid "SaaS" -msgstr "SaaS" - -#: lib/organizations/school_live/school_new.ex:53 -#, elixir-autogen, elixir-format -msgid "White label" -msgstr "Weißes Label" - #: lib/dashboard/schools/school_edit.html.heex:22 #, elixir-autogen, elixir-format msgid "Allow anyone to sign up?" @@ -753,197 +732,18 @@ msgstr "Rolle der Schule" msgid "Search users" msgstr "Benutzer suchen" -#: lib/billing/billing_utils.ex:12 -#, elixir-autogen, elixir-format -msgid "%{count} users" -msgstr "%{count} Benutzer" - -#: lib/dashboard/schools/school_billing.html.heex:62 -#, elixir-autogen, elixir-format -msgid "* Dedicated infrastructure is optional and it may have an extra cost depending on your needs." -msgstr "* Eine dedizierte Infrastruktur ist optional und kann je nach Bedarf mit zusätzlichen Kosten verbunden sein." - -#: lib/dashboard/schools/school_billing.html.heex:30 -#, elixir-autogen, elixir-format -msgid "/month per user" -msgstr "/Monat pro Benutzer" - -#: lib/billing/billing_utils.ex:28 -#, elixir-autogen, elixir-format -msgid "25% off add-ons" -msgstr "25 % Rabatt auf Add-ons" - -#: lib/dashboard/schools/school_billing.ex:25 -#: lib/layouts/menu_utils.ex:101 -#, elixir-autogen, elixir-format -msgid "Billing" -msgstr "Abrechnung" - -#: lib/billing/billing_utils.ex:21 -#, elixir-autogen, elixir-format -msgid "Cancel anytime" -msgstr "Jederzeit kündbar" - -#: lib/billing/billing_utils.ex:59 -#, elixir-autogen, elixir-format -msgid "Confirmed" -msgstr "Bestätigt" - -#: lib/dashboard/schools/school_billing.ex:38 -#, elixir-autogen, elixir-format -msgid "Contact us" -msgstr "Kontaktiere uns" - -#: lib/dashboard/schools/school_billing.ex:44 -#: lib/dashboard/schools/school_billing.ex:45 -#: lib/dashboard/schools/school_billing.ex:49 -#: lib/dashboard/schools/school_billing.ex:54 -#: lib/dashboard/schools/school_billing.html.heex:18 -#: lib/dashboard/schools/school_view.html.heex:46 -#, elixir-autogen, elixir-format -msgid "Current plan" -msgstr "Derzeitiger Plan" - -#: lib/billing/billing_utils.ex:15 -#, elixir-autogen, elixir-format -msgid "Custom domain" -msgstr "Benutzerdefinierten Domain" - -#: lib/billing/billing_utils.ex:14 -#, elixir-autogen, elixir-format -msgid "Custom logo" -msgstr "Benutzerdefiniertes Logo" - -#: lib/billing/billing_utils.ex:27 -#, elixir-autogen, elixir-format -msgid "Dedicated infrastructure *" -msgstr "Dedizierte Infrastruktur *" - -#: lib/billing/billing_utils.ex:25 -#, elixir-autogen, elixir-format -msgid "Discounted pricing for 1,000+ users" -msgstr "Ermäßigte Preise für mehr als 1.000 Benutzer" - -#: lib/dashboard/schools/school_billing.ex:46 -#: lib/dashboard/schools/school_billing.ex:51 -#, elixir-autogen, elixir-format -msgid "Downgrade" -msgstr "Downgrade" - -#: lib/billing/billing_utils.ex:44 -#, elixir-autogen, elixir-format -msgid "Enterprise" -msgstr "Unternehmen" - -#: lib/billing/billing_utils.ex:24 -#, elixir-autogen, elixir-format -msgid "Everything in Flexible" -msgstr "Alles in Flexibel" - -#: lib/billing/billing_utils.ex:18 -#, elixir-autogen, elixir-format -msgid "Everything in Hobby" -msgstr "Alles in Hobby" - -#: lib/billing/billing_utils.ex:61 -#, elixir-autogen, elixir-format -msgid "Failed" -msgstr "Fehlgeschlagen" - -#: lib/billing/billing_utils.ex:20 -#, elixir-autogen, elixir-format -msgid "Faster support" -msgstr "Schnellerer Support" - -#: lib/billing/billing_utils.ex:41 -#, elixir-autogen, elixir-format -msgid "Flexible" -msgstr "Flexibel" - -#: lib/dashboard/schools/school_billing.ex:36 -#, elixir-autogen, elixir-format -msgid "Free" -msgstr "Kostenlos" - -#: lib/billing/billing_utils.ex:40 -#, elixir-autogen, elixir-format -msgid "Get started for free." -msgstr "Starten Sie kostenlos durch." - -#: lib/billing/billing_utils.ex:40 -#, elixir-autogen, elixir-format -msgid "Hobby" -msgstr "Hobby" - -#: lib/billing/billing_utils.ex:41 -#, elixir-autogen, elixir-format -msgid "Pay as you go." -msgstr "Bezahlen Sie, wie Sie wollen." - -#: lib/dashboard/schools/school_view.html.heex:47 -#, elixir-autogen, elixir-format -msgid "Payment status" -msgstr "Zahlungsstatus" - -#: lib/billing/billing_utils.ex:26 -#, elixir-autogen, elixir-format -msgid "Priority support" -msgstr "Vorrangiger Support" - -#: lib/billing/billing_utils.ex:45 -#, elixir-autogen, elixir-format -msgid "Priority support and dedicated infrastructure." -msgstr "Vorrangiger Support und dedizierte Infrastruktur." - -#: lib/dashboard/schools/school_billing.html.heex:3 -#, elixir-autogen, elixir-format -msgid "Select your currency" -msgstr "Wählen Sie Ihre Währung aus" - -#: lib/dashboard/schools/school_view.html.heex:42 -#, elixir-autogen, elixir-format -msgid "Subscription" -msgstr "Abonnement" - -#: lib/dashboard/schools/school_view.ex:49 -#: lib/dashboard/schools/school_view.ex:67 -#, elixir-autogen, elixir-format -msgid "Subscription updated" -msgstr "Abonnement aktualisiert" - -#: lib/billing/billing_utils.ex:13 -#, elixir-autogen, elixir-format -msgid "Unlimited lessons" -msgstr "Unbegrenzter Unterricht" - -#: lib/billing/billing_utils.ex:19 -#, elixir-autogen, elixir-format -msgid "Unlimited users" -msgstr "Unbegrenzte Benutzer" - -#: lib/dashboard/schools/school_view.html.heex:51 -#, elixir-autogen, elixir-format, fuzzy -msgid "Update subscription" -msgstr "Abonnement aktualisieren" - -#: lib/dashboard/schools/school_billing.ex:48 -#: lib/dashboard/schools/school_billing.ex:50 -#, elixir-autogen, elixir-format -msgid "Upgrade" -msgstr "Aufwerten" - #: lib/dashboard/schools/school_view.html.heex:37 #, elixir-autogen, elixir-format, fuzzy msgid "Delete" msgstr "Löschen" #: lib/dashboard/schools/school_edit.ex:83 -#: lib/dashboard/schools/school_view.ex:89 +#: lib/dashboard/schools/school_view.ex:42 #, elixir-autogen, elixir-format, fuzzy msgid "School could not be deleted" msgstr "Schule konnte nicht gelöscht werden" -#: lib/dashboard/schools/school_view.ex:83 +#: lib/dashboard/schools/school_view.ex:36 #, elixir-autogen, elixir-format msgid "School deleted" msgstr "Schule gelöscht" diff --git a/priv/gettext/default.pot b/priv/gettext/default.pot index 63c65971..947323c6 100644 --- a/priv/gettext/default.pot +++ b/priv/gettext/default.pot @@ -73,7 +73,7 @@ msgstr "" #: lib/dashboard/lessons/components/option_list.ex:95 #: lib/dashboard/schools/school_edit.html.heex:8 #: lib/dashboard/schools/school_user_list.html.heex:68 -#: lib/organizations/school_live/school_new.html.heex:10 +#: lib/organizations/school_live/school_new.html.heex:9 #, elixir-autogen, elixir-format msgid "Saving..." msgstr "" @@ -153,7 +153,7 @@ msgstr "" msgid "Profile" msgstr "" -#: lib/content/course_live/lesson_play.html.heex:99 +#: lib/content/course_live/lesson_play.html.heex:98 #, elixir-autogen, elixir-format msgid "Confirm" msgstr "" @@ -197,7 +197,7 @@ msgstr "" msgid "Username or email address" msgstr "" -#: lib/content/course_live/lesson_play.html.heex:19 +#: lib/content/course_live/lesson_play.html.heex:18 #, elixir-autogen, elixir-format msgid "Close" msgstr "" @@ -262,7 +262,7 @@ msgstr "" #: lib/components/delete_item.ex:17 #: lib/components/delete_item.ex:21 #: lib/dashboard/schools/school_edit.ex:93 -#: lib/layouts/menu_utils.ex:102 +#: lib/layouts/menu_utils.ex:101 #: lib/layouts/templates/app.html.heex:78 #: lib/layouts/templates/dashboard_course.html.heex:50 #, elixir-autogen, elixir-format @@ -357,13 +357,6 @@ msgstr "" msgid "No results found." msgstr "" -#: lib/content/course_live/lesson_play.html.heex:113 -#, elixir-autogen, elixir-format -msgid "Contact school" -msgstr "" - -#: lib/dashboard/schools/school_billing.ex:53 -#: lib/dashboard/schools/school_billing.ex:55 #: lib/layouts/components/app_menu.ex:39 #: lib/support/contact_live/contact.ex:15 #: lib/support/contact_live/contact.html.heex:3 @@ -376,21 +369,11 @@ msgstr "" msgid "Message sent!" msgstr "" -#: lib/content/course_live/lesson_play.html.heex:106 -#, elixir-autogen, elixir-format -msgid "Subscription expired" -msgstr "" - #: lib/support/contact_live/contact.ex:29 #, elixir-autogen, elixir-format msgid "There was an error sending your message. Please try again." msgstr "" -#: lib/content/course_live/lesson_play.html.heex:109 -#, elixir-autogen, elixir-format -msgid "Your school manager needs to renew their subscription. Please, contact them." -msgstr "" - #: lib/layouts/templates/app.html.heex:54 #, elixir-autogen, elixir-format msgid "Setup" diff --git a/priv/gettext/en/LC_MESSAGES/courses.po b/priv/gettext/en/LC_MESSAGES/courses.po index ca962a7a..b732bec9 100644 --- a/priv/gettext/en/LC_MESSAGES/courses.po +++ b/priv/gettext/en/LC_MESSAGES/courses.po @@ -21,7 +21,7 @@ msgstr "" msgid "Advanced" msgstr "" -#: lib/content/course_live/lesson_completed.html.heex:19 +#: lib/content/course_live/lesson_completed.html.heex:21 #, elixir-autogen, elixir-format msgid "Back to the course" msgstr "" @@ -31,7 +31,7 @@ msgstr "" msgid "Beginner" msgstr "" -#: lib/content/course_live/lesson_play.html.heex:95 +#: lib/content/course_live/lesson_play.html.heex:94 #, elixir-autogen, elixir-format msgid "Confirming..." msgstr "" @@ -41,7 +41,7 @@ msgstr "" msgid "Enrolled successfully!" msgstr "" -#: lib/content/course_live/lesson_completed.ex:27 +#: lib/content/course_live/lesson_completed.ex:29 #, elixir-autogen, elixir-format msgid "Excellent!" msgstr "" @@ -56,12 +56,12 @@ msgstr "" msgid "Failed to enroll" msgstr "" -#: lib/content/course_live/lesson_completed.ex:29 +#: lib/content/course_live/lesson_completed.ex:31 #, elixir-autogen, elixir-format msgid "Good!" msgstr "" -#: lib/content/course_live/lesson_completed.html.heex:4 +#: lib/content/course_live/lesson_completed.html.heex:5 #, elixir-autogen, elixir-format msgid "Illustration of a green alien" msgstr "" @@ -71,17 +71,17 @@ msgstr "" msgid "Intermediate" msgstr "" -#: lib/content/course_live/lesson_play.html.heex:99 +#: lib/content/course_live/lesson_play.html.heex:98 #, elixir-autogen, elixir-format msgid "Next step" msgstr "" -#: lib/content/course_live/lesson_completed.ex:30 +#: lib/content/course_live/lesson_completed.ex:32 #, elixir-autogen, elixir-format msgid "Not bad!" msgstr "" -#: lib/content/course_live/lesson_completed.ex:26 +#: lib/content/course_live/lesson_completed.ex:28 #, elixir-autogen, elixir-format msgid "Perfect!" msgstr "" @@ -96,22 +96,22 @@ msgstr "" msgid "That's incorrect." msgstr "" -#: lib/content/course_live/lesson_completed.ex:31 +#: lib/content/course_live/lesson_completed.ex:33 #, elixir-autogen, elixir-format msgid "There's room for improvement" msgstr "" -#: lib/content/course_live/lesson_play.ex:93 +#: lib/content/course_live/lesson_play.ex:90 #, elixir-autogen, elixir-format msgid "Unable to complete lesson" msgstr "" -#: lib/content/course_live/lesson_play.ex:56 +#: lib/content/course_live/lesson_play.ex:53 #, elixir-autogen, elixir-format msgid "Unable to select option" msgstr "" -#: lib/content/course_live/lesson_completed.ex:28 +#: lib/content/course_live/lesson_completed.ex:30 #, elixir-autogen, elixir-format msgid "Very good!" msgstr "" @@ -121,7 +121,7 @@ msgstr "" msgid "Well done!" msgstr "" -#: lib/content/course_live/lesson_completed.html.heex:11 +#: lib/content/course_live/lesson_completed.html.heex:13 #, elixir-autogen, elixir-format msgid "You got %{correct} out of %{total} answers right." msgstr "" @@ -131,7 +131,7 @@ msgstr "" msgid "Lesson cover" msgstr "" -#: lib/content/course_live/lesson_play.html.heex:16 +#: lib/content/course_live/lesson_play.html.heex:15 #, elixir-autogen, elixir-format msgid "Your progress in this lesson will be lost. Would you like to quit?" msgstr "" @@ -151,7 +151,12 @@ msgstr "" msgid "No courses" msgstr "" -#: lib/content/course_live/lesson_play.ex:79 +#: lib/content/course_live/lesson_play.ex:76 #, elixir-autogen, elixir-format msgid "Unable to send answer" msgstr "" + +#: lib/content/course_live/lesson_completed.html.heex:12 +#, elixir-autogen, elixir-format +msgid "You got all the answers correct!" +msgstr "" diff --git a/priv/gettext/en/LC_MESSAGES/default.po b/priv/gettext/en/LC_MESSAGES/default.po index f59aab8e..e9697289 100644 --- a/priv/gettext/en/LC_MESSAGES/default.po +++ b/priv/gettext/en/LC_MESSAGES/default.po @@ -73,7 +73,7 @@ msgstr "" #: lib/dashboard/lessons/components/option_list.ex:95 #: lib/dashboard/schools/school_edit.html.heex:8 #: lib/dashboard/schools/school_user_list.html.heex:68 -#: lib/organizations/school_live/school_new.html.heex:10 +#: lib/organizations/school_live/school_new.html.heex:9 #, elixir-autogen, elixir-format msgid "Saving..." msgstr "" @@ -153,7 +153,7 @@ msgstr "" msgid "Profile" msgstr "" -#: lib/content/course_live/lesson_play.html.heex:99 +#: lib/content/course_live/lesson_play.html.heex:98 #, elixir-autogen, elixir-format msgid "Confirm" msgstr "" @@ -197,7 +197,7 @@ msgstr "" msgid "Username or email address" msgstr "" -#: lib/content/course_live/lesson_play.html.heex:19 +#: lib/content/course_live/lesson_play.html.heex:18 #, elixir-autogen, elixir-format, fuzzy msgid "Close" msgstr "" @@ -262,7 +262,7 @@ msgstr "" #: lib/components/delete_item.ex:17 #: lib/components/delete_item.ex:21 #: lib/dashboard/schools/school_edit.ex:93 -#: lib/layouts/menu_utils.ex:102 +#: lib/layouts/menu_utils.ex:101 #: lib/layouts/templates/app.html.heex:78 #: lib/layouts/templates/dashboard_course.html.heex:50 #, elixir-autogen, elixir-format @@ -357,13 +357,6 @@ msgstr "" msgid "No results found." msgstr "" -#: lib/content/course_live/lesson_play.html.heex:113 -#, elixir-autogen, elixir-format -msgid "Contact school" -msgstr "" - -#: lib/dashboard/schools/school_billing.ex:53 -#: lib/dashboard/schools/school_billing.ex:55 #: lib/layouts/components/app_menu.ex:39 #: lib/support/contact_live/contact.ex:15 #: lib/support/contact_live/contact.html.heex:3 @@ -376,21 +369,11 @@ msgstr "" msgid "Message sent!" msgstr "" -#: lib/content/course_live/lesson_play.html.heex:106 -#, elixir-autogen, elixir-format -msgid "Subscription expired" -msgstr "" - #: lib/support/contact_live/contact.ex:29 #, elixir-autogen, elixir-format, fuzzy msgid "There was an error sending your message. Please try again." msgstr "" -#: lib/content/course_live/lesson_play.html.heex:109 -#, elixir-autogen, elixir-format -msgid "Your school manager needs to renew their subscription. Please, contact them." -msgstr "" - #: lib/layouts/templates/app.html.heex:54 #, elixir-autogen, elixir-format msgid "Setup" diff --git a/priv/gettext/en/LC_MESSAGES/errors.po b/priv/gettext/en/LC_MESSAGES/errors.po index b3ff66bb..838a9977 100644 --- a/priv/gettext/en/LC_MESSAGES/errors.po +++ b/priv/gettext/en/LC_MESSAGES/errors.po @@ -15,7 +15,7 @@ msgid "can't be blank" msgstr "" ## From Ecto.Changeset.unique_constraint/3 -#: lib/organizations/school_schema.ex:125 +#: lib/organizations/school_schema.ex:109 #, elixir-autogen msgid "has already been taken" msgstr "" @@ -175,8 +175,8 @@ msgstr "" msgid "Your enrollment is pending approval" msgstr "" -#: lib/organizations/school_schema.ex:66 -#: lib/organizations/school_schema.ex:67 +#: lib/organizations/school_schema.ex:64 +#: lib/organizations/school_schema.ex:65 #, elixir-autogen, elixir-format, fuzzy msgid "must start with https://" msgstr "" @@ -196,17 +196,12 @@ msgstr "" msgid "must have a domain name" msgstr "" -#: lib/organizations/school_schema.ex:114 -#, elixir-autogen, elixir-format -msgid "must be white_label" -msgstr "" - #: lib/error/permission_error.ex:15 #, elixir-autogen, elixir-format msgid "Permission denied" msgstr "" -#: lib/organizations/school_schema.ex:65 +#: lib/organizations/school_schema.ex:63 #, elixir-autogen, elixir-format msgid "is not allowed" msgstr "" diff --git a/priv/gettext/en/LC_MESSAGES/orgs.po b/priv/gettext/en/LC_MESSAGES/orgs.po index a42007ac..b98db6c5 100644 --- a/priv/gettext/en/LC_MESSAGES/orgs.po +++ b/priv/gettext/en/LC_MESSAGES/orgs.po @@ -11,20 +11,20 @@ msgstr "" "Language: en\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: lib/organizations/school_live/school_new.html.heex:8 +#: lib/organizations/school_live/school_new.html.heex:7 #, elixir-autogen, elixir-format msgid "Choose a nickname to acess your school profile" msgstr "" #: lib/organizations/school_live/school_new.ex:12 #: lib/organizations/school_live/school_new.html.heex:3 -#: lib/organizations/school_live/school_new.html.heex:11 +#: lib/organizations/school_live/school_new.html.heex:10 #, elixir-autogen, elixir-format msgid "Create school" msgstr "" #: lib/dashboard/schools/school_edit.html.heex:12 -#: lib/organizations/school_live/school_new.html.heex:8 +#: lib/organizations/school_live/school_new.html.heex:7 #, elixir-autogen, elixir-format msgid "Nickname" msgstr "" @@ -35,13 +35,13 @@ msgid "School could not be created" msgstr "" #: lib/dashboard/schools/school_edit.html.heex:14 -#: lib/organizations/school_live/school_new.html.heex:7 +#: lib/organizations/school_live/school_new.html.heex:6 #, elixir-autogen, elixir-format msgid "School email" msgstr "" #: lib/dashboard/schools/school_edit.html.heex:13 -#: lib/organizations/school_live/school_new.html.heex:6 +#: lib/organizations/school_live/school_new.html.heex:5 #, elixir-autogen, elixir-format msgid "School name" msgstr "" @@ -104,7 +104,6 @@ msgstr "" msgid "Could not remove user!" msgstr "" -#: lib/billing/billing_utils.ex:60 #: lib/dashboard/courses/course_user_list.html.heex:26 #: lib/dashboard/schools/school_user_list.html.heex:25 #, elixir-autogen, elixir-format @@ -607,26 +606,6 @@ msgstr "" msgid "When checked, users will be required to confirm their email address before they can log in." msgstr "" -#: lib/organizations/school_live/school_new.html.heex:5 -#, elixir-autogen, elixir-format -msgid "App type" -msgstr "" - -#: lib/organizations/school_live/school_new.ex:53 -#, elixir-autogen, elixir-format -msgid "Marketplace" -msgstr "" - -#: lib/organizations/school_live/school_new.ex:53 -#, elixir-autogen, elixir-format -msgid "SaaS" -msgstr "" - -#: lib/organizations/school_live/school_new.ex:53 -#, elixir-autogen, elixir-format -msgid "White label" -msgstr "" - #: lib/dashboard/schools/school_edit.html.heex:22 #, elixir-autogen, elixir-format msgid "Allow anyone to sign up?" @@ -753,197 +732,18 @@ msgstr "" msgid "Search users" msgstr "" -#: lib/billing/billing_utils.ex:12 -#, elixir-autogen, elixir-format -msgid "%{count} users" -msgstr "" - -#: lib/dashboard/schools/school_billing.html.heex:62 -#, elixir-autogen, elixir-format -msgid "* Dedicated infrastructure is optional and it may have an extra cost depending on your needs." -msgstr "" - -#: lib/dashboard/schools/school_billing.html.heex:30 -#, elixir-autogen, elixir-format -msgid "/month per user" -msgstr "" - -#: lib/billing/billing_utils.ex:28 -#, elixir-autogen, elixir-format -msgid "25% off add-ons" -msgstr "" - -#: lib/dashboard/schools/school_billing.ex:25 -#: lib/layouts/menu_utils.ex:101 -#, elixir-autogen, elixir-format -msgid "Billing" -msgstr "" - -#: lib/billing/billing_utils.ex:21 -#, elixir-autogen, elixir-format -msgid "Cancel anytime" -msgstr "" - -#: lib/billing/billing_utils.ex:59 -#, elixir-autogen, elixir-format -msgid "Confirmed" -msgstr "" - -#: lib/dashboard/schools/school_billing.ex:38 -#, elixir-autogen, elixir-format -msgid "Contact us" -msgstr "" - -#: lib/dashboard/schools/school_billing.ex:44 -#: lib/dashboard/schools/school_billing.ex:45 -#: lib/dashboard/schools/school_billing.ex:49 -#: lib/dashboard/schools/school_billing.ex:54 -#: lib/dashboard/schools/school_billing.html.heex:18 -#: lib/dashboard/schools/school_view.html.heex:46 -#, elixir-autogen, elixir-format -msgid "Current plan" -msgstr "" - -#: lib/billing/billing_utils.ex:15 -#, elixir-autogen, elixir-format -msgid "Custom domain" -msgstr "" - -#: lib/billing/billing_utils.ex:14 -#, elixir-autogen, elixir-format -msgid "Custom logo" -msgstr "" - -#: lib/billing/billing_utils.ex:27 -#, elixir-autogen, elixir-format -msgid "Dedicated infrastructure *" -msgstr "" - -#: lib/billing/billing_utils.ex:25 -#, elixir-autogen, elixir-format -msgid "Discounted pricing for 1,000+ users" -msgstr "" - -#: lib/dashboard/schools/school_billing.ex:46 -#: lib/dashboard/schools/school_billing.ex:51 -#, elixir-autogen, elixir-format -msgid "Downgrade" -msgstr "" - -#: lib/billing/billing_utils.ex:44 -#, elixir-autogen, elixir-format -msgid "Enterprise" -msgstr "" - -#: lib/billing/billing_utils.ex:24 -#, elixir-autogen, elixir-format -msgid "Everything in Flexible" -msgstr "" - -#: lib/billing/billing_utils.ex:18 -#, elixir-autogen, elixir-format -msgid "Everything in Hobby" -msgstr "" - -#: lib/billing/billing_utils.ex:61 -#, elixir-autogen, elixir-format -msgid "Failed" -msgstr "" - -#: lib/billing/billing_utils.ex:20 -#, elixir-autogen, elixir-format -msgid "Faster support" -msgstr "" - -#: lib/billing/billing_utils.ex:41 -#, elixir-autogen, elixir-format -msgid "Flexible" -msgstr "" - -#: lib/dashboard/schools/school_billing.ex:36 -#, elixir-autogen, elixir-format -msgid "Free" -msgstr "" - -#: lib/billing/billing_utils.ex:40 -#, elixir-autogen, elixir-format -msgid "Get started for free." -msgstr "" - -#: lib/billing/billing_utils.ex:40 -#, elixir-autogen, elixir-format -msgid "Hobby" -msgstr "" - -#: lib/billing/billing_utils.ex:41 -#, elixir-autogen, elixir-format -msgid "Pay as you go." -msgstr "" - -#: lib/dashboard/schools/school_view.html.heex:47 -#, elixir-autogen, elixir-format -msgid "Payment status" -msgstr "" - -#: lib/billing/billing_utils.ex:26 -#, elixir-autogen, elixir-format -msgid "Priority support" -msgstr "" - -#: lib/billing/billing_utils.ex:45 -#, elixir-autogen, elixir-format -msgid "Priority support and dedicated infrastructure." -msgstr "" - -#: lib/dashboard/schools/school_billing.html.heex:3 -#, elixir-autogen, elixir-format -msgid "Select your currency" -msgstr "" - -#: lib/dashboard/schools/school_view.html.heex:42 -#, elixir-autogen, elixir-format -msgid "Subscription" -msgstr "" - -#: lib/dashboard/schools/school_view.ex:49 -#: lib/dashboard/schools/school_view.ex:67 -#, elixir-autogen, elixir-format -msgid "Subscription updated" -msgstr "" - -#: lib/billing/billing_utils.ex:13 -#, elixir-autogen, elixir-format -msgid "Unlimited lessons" -msgstr "" - -#: lib/billing/billing_utils.ex:19 -#, elixir-autogen, elixir-format -msgid "Unlimited users" -msgstr "" - -#: lib/dashboard/schools/school_view.html.heex:51 -#, elixir-autogen, elixir-format, fuzzy -msgid "Update subscription" -msgstr "" - -#: lib/dashboard/schools/school_billing.ex:48 -#: lib/dashboard/schools/school_billing.ex:50 -#, elixir-autogen, elixir-format -msgid "Upgrade" -msgstr "" - #: lib/dashboard/schools/school_view.html.heex:37 #, elixir-autogen, elixir-format, fuzzy msgid "Delete" msgstr "" #: lib/dashboard/schools/school_edit.ex:83 -#: lib/dashboard/schools/school_view.ex:89 +#: lib/dashboard/schools/school_view.ex:42 #, elixir-autogen, elixir-format, fuzzy msgid "School could not be deleted" msgstr "" -#: lib/dashboard/schools/school_view.ex:83 +#: lib/dashboard/schools/school_view.ex:36 #, elixir-autogen, elixir-format msgid "School deleted" msgstr "" diff --git a/priv/gettext/errors.pot b/priv/gettext/errors.pot index 9b23981f..25293db4 100644 --- a/priv/gettext/errors.pot +++ b/priv/gettext/errors.pot @@ -12,7 +12,7 @@ msgid "can't be blank" msgstr "" ## From Ecto.Changeset.unique_constraint/3 -#: lib/organizations/school_schema.ex:125 +#: lib/organizations/school_schema.ex:109 #, elixir-autogen msgid "has already been taken" msgstr "" @@ -172,8 +172,8 @@ msgstr "" msgid "Your enrollment is pending approval" msgstr "" -#: lib/organizations/school_schema.ex:66 -#: lib/organizations/school_schema.ex:67 +#: lib/organizations/school_schema.ex:64 +#: lib/organizations/school_schema.ex:65 #, elixir-autogen, elixir-format msgid "must start with https://" msgstr "" @@ -193,17 +193,12 @@ msgstr "" msgid "must have a domain name" msgstr "" -#: lib/organizations/school_schema.ex:114 -#, elixir-autogen, elixir-format -msgid "must be white_label" -msgstr "" - #: lib/error/permission_error.ex:15 #, elixir-autogen, elixir-format msgid "Permission denied" msgstr "" -#: lib/organizations/school_schema.ex:65 +#: lib/organizations/school_schema.ex:63 #, elixir-autogen, elixir-format msgid "is not allowed" msgstr "" diff --git a/priv/gettext/orgs.pot b/priv/gettext/orgs.pot index ea5599e4..a1219334 100644 --- a/priv/gettext/orgs.pot +++ b/priv/gettext/orgs.pot @@ -11,20 +11,20 @@ msgid "" msgstr "" -#: lib/organizations/school_live/school_new.html.heex:8 +#: lib/organizations/school_live/school_new.html.heex:7 #, elixir-autogen, elixir-format msgid "Choose a nickname to acess your school profile" msgstr "" #: lib/organizations/school_live/school_new.ex:12 #: lib/organizations/school_live/school_new.html.heex:3 -#: lib/organizations/school_live/school_new.html.heex:11 +#: lib/organizations/school_live/school_new.html.heex:10 #, elixir-autogen, elixir-format msgid "Create school" msgstr "" #: lib/dashboard/schools/school_edit.html.heex:12 -#: lib/organizations/school_live/school_new.html.heex:8 +#: lib/organizations/school_live/school_new.html.heex:7 #, elixir-autogen, elixir-format msgid "Nickname" msgstr "" @@ -35,13 +35,13 @@ msgid "School could not be created" msgstr "" #: lib/dashboard/schools/school_edit.html.heex:14 -#: lib/organizations/school_live/school_new.html.heex:7 +#: lib/organizations/school_live/school_new.html.heex:6 #, elixir-autogen, elixir-format msgid "School email" msgstr "" #: lib/dashboard/schools/school_edit.html.heex:13 -#: lib/organizations/school_live/school_new.html.heex:6 +#: lib/organizations/school_live/school_new.html.heex:5 #, elixir-autogen, elixir-format msgid "School name" msgstr "" @@ -104,7 +104,6 @@ msgstr "" msgid "Could not remove user!" msgstr "" -#: lib/billing/billing_utils.ex:60 #: lib/dashboard/courses/course_user_list.html.heex:26 #: lib/dashboard/schools/school_user_list.html.heex:25 #, elixir-autogen, elixir-format @@ -607,26 +606,6 @@ msgstr "" msgid "When checked, users will be required to confirm their email address before they can log in." msgstr "" -#: lib/organizations/school_live/school_new.html.heex:5 -#, elixir-autogen, elixir-format -msgid "App type" -msgstr "" - -#: lib/organizations/school_live/school_new.ex:53 -#, elixir-autogen, elixir-format -msgid "Marketplace" -msgstr "" - -#: lib/organizations/school_live/school_new.ex:53 -#, elixir-autogen, elixir-format -msgid "SaaS" -msgstr "" - -#: lib/organizations/school_live/school_new.ex:53 -#, elixir-autogen, elixir-format -msgid "White label" -msgstr "" - #: lib/dashboard/schools/school_edit.html.heex:22 #, elixir-autogen, elixir-format msgid "Allow anyone to sign up?" @@ -753,197 +732,18 @@ msgstr "" msgid "Search users" msgstr "" -#: lib/billing/billing_utils.ex:12 -#, elixir-autogen, elixir-format -msgid "%{count} users" -msgstr "" - -#: lib/dashboard/schools/school_billing.html.heex:62 -#, elixir-autogen, elixir-format -msgid "* Dedicated infrastructure is optional and it may have an extra cost depending on your needs." -msgstr "" - -#: lib/dashboard/schools/school_billing.html.heex:30 -#, elixir-autogen, elixir-format -msgid "/month per user" -msgstr "" - -#: lib/billing/billing_utils.ex:28 -#, elixir-autogen, elixir-format -msgid "25% off add-ons" -msgstr "" - -#: lib/dashboard/schools/school_billing.ex:25 -#: lib/layouts/menu_utils.ex:101 -#, elixir-autogen, elixir-format -msgid "Billing" -msgstr "" - -#: lib/billing/billing_utils.ex:21 -#, elixir-autogen, elixir-format -msgid "Cancel anytime" -msgstr "" - -#: lib/billing/billing_utils.ex:59 -#, elixir-autogen, elixir-format -msgid "Confirmed" -msgstr "" - -#: lib/dashboard/schools/school_billing.ex:38 -#, elixir-autogen, elixir-format -msgid "Contact us" -msgstr "" - -#: lib/dashboard/schools/school_billing.ex:44 -#: lib/dashboard/schools/school_billing.ex:45 -#: lib/dashboard/schools/school_billing.ex:49 -#: lib/dashboard/schools/school_billing.ex:54 -#: lib/dashboard/schools/school_billing.html.heex:18 -#: lib/dashboard/schools/school_view.html.heex:46 -#, elixir-autogen, elixir-format -msgid "Current plan" -msgstr "" - -#: lib/billing/billing_utils.ex:15 -#, elixir-autogen, elixir-format -msgid "Custom domain" -msgstr "" - -#: lib/billing/billing_utils.ex:14 -#, elixir-autogen, elixir-format -msgid "Custom logo" -msgstr "" - -#: lib/billing/billing_utils.ex:27 -#, elixir-autogen, elixir-format -msgid "Dedicated infrastructure *" -msgstr "" - -#: lib/billing/billing_utils.ex:25 -#, elixir-autogen, elixir-format -msgid "Discounted pricing for 1,000+ users" -msgstr "" - -#: lib/dashboard/schools/school_billing.ex:46 -#: lib/dashboard/schools/school_billing.ex:51 -#, elixir-autogen, elixir-format -msgid "Downgrade" -msgstr "" - -#: lib/billing/billing_utils.ex:44 -#, elixir-autogen, elixir-format -msgid "Enterprise" -msgstr "" - -#: lib/billing/billing_utils.ex:24 -#, elixir-autogen, elixir-format -msgid "Everything in Flexible" -msgstr "" - -#: lib/billing/billing_utils.ex:18 -#, elixir-autogen, elixir-format -msgid "Everything in Hobby" -msgstr "" - -#: lib/billing/billing_utils.ex:61 -#, elixir-autogen, elixir-format -msgid "Failed" -msgstr "" - -#: lib/billing/billing_utils.ex:20 -#, elixir-autogen, elixir-format -msgid "Faster support" -msgstr "" - -#: lib/billing/billing_utils.ex:41 -#, elixir-autogen, elixir-format -msgid "Flexible" -msgstr "" - -#: lib/dashboard/schools/school_billing.ex:36 -#, elixir-autogen, elixir-format -msgid "Free" -msgstr "" - -#: lib/billing/billing_utils.ex:40 -#, elixir-autogen, elixir-format -msgid "Get started for free." -msgstr "" - -#: lib/billing/billing_utils.ex:40 -#, elixir-autogen, elixir-format -msgid "Hobby" -msgstr "" - -#: lib/billing/billing_utils.ex:41 -#, elixir-autogen, elixir-format -msgid "Pay as you go." -msgstr "" - -#: lib/dashboard/schools/school_view.html.heex:47 -#, elixir-autogen, elixir-format -msgid "Payment status" -msgstr "" - -#: lib/billing/billing_utils.ex:26 -#, elixir-autogen, elixir-format -msgid "Priority support" -msgstr "" - -#: lib/billing/billing_utils.ex:45 -#, elixir-autogen, elixir-format -msgid "Priority support and dedicated infrastructure." -msgstr "" - -#: lib/dashboard/schools/school_billing.html.heex:3 -#, elixir-autogen, elixir-format -msgid "Select your currency" -msgstr "" - -#: lib/dashboard/schools/school_view.html.heex:42 -#, elixir-autogen, elixir-format -msgid "Subscription" -msgstr "" - -#: lib/dashboard/schools/school_view.ex:49 -#: lib/dashboard/schools/school_view.ex:67 -#, elixir-autogen, elixir-format -msgid "Subscription updated" -msgstr "" - -#: lib/billing/billing_utils.ex:13 -#, elixir-autogen, elixir-format -msgid "Unlimited lessons" -msgstr "" - -#: lib/billing/billing_utils.ex:19 -#, elixir-autogen, elixir-format -msgid "Unlimited users" -msgstr "" - -#: lib/dashboard/schools/school_view.html.heex:51 -#, elixir-autogen, elixir-format -msgid "Update subscription" -msgstr "" - -#: lib/dashboard/schools/school_billing.ex:48 -#: lib/dashboard/schools/school_billing.ex:50 -#, elixir-autogen, elixir-format -msgid "Upgrade" -msgstr "" - #: lib/dashboard/schools/school_view.html.heex:37 #, elixir-autogen, elixir-format msgid "Delete" msgstr "" #: lib/dashboard/schools/school_edit.ex:83 -#: lib/dashboard/schools/school_view.ex:89 +#: lib/dashboard/schools/school_view.ex:42 #, elixir-autogen, elixir-format msgid "School could not be deleted" msgstr "" -#: lib/dashboard/schools/school_view.ex:83 +#: lib/dashboard/schools/school_view.ex:36 #, elixir-autogen, elixir-format msgid "School deleted" msgstr "" diff --git a/priv/gettext/pt/LC_MESSAGES/courses.po b/priv/gettext/pt/LC_MESSAGES/courses.po index 6a239380..60c841ea 100644 --- a/priv/gettext/pt/LC_MESSAGES/courses.po +++ b/priv/gettext/pt/LC_MESSAGES/courses.po @@ -21,7 +21,7 @@ msgstr "Uma solicitação de matrícula foi enviada ao professor do curso." msgid "Advanced" msgstr "Avançado" -#: lib/content/course_live/lesson_completed.html.heex:19 +#: lib/content/course_live/lesson_completed.html.heex:21 #, elixir-autogen, elixir-format msgid "Back to the course" msgstr "Voltar ao curso" @@ -31,7 +31,7 @@ msgstr "Voltar ao curso" msgid "Beginner" msgstr "Iniciante" -#: lib/content/course_live/lesson_play.html.heex:95 +#: lib/content/course_live/lesson_play.html.heex:94 #, elixir-autogen, elixir-format msgid "Confirming..." msgstr "Confirmando..." @@ -41,7 +41,7 @@ msgstr "Confirmando..." msgid "Enrolled successfully!" msgstr "Matriculado com sucesso!" -#: lib/content/course_live/lesson_completed.ex:27 +#: lib/content/course_live/lesson_completed.ex:29 #, elixir-autogen, elixir-format msgid "Excellent!" msgstr "Excelente!" @@ -56,12 +56,12 @@ msgstr "Especialista" msgid "Failed to enroll" msgstr "Falha ao se matricular" -#: lib/content/course_live/lesson_completed.ex:29 +#: lib/content/course_live/lesson_completed.ex:31 #, elixir-autogen, elixir-format msgid "Good!" msgstr "Bom!" -#: lib/content/course_live/lesson_completed.html.heex:4 +#: lib/content/course_live/lesson_completed.html.heex:5 #, elixir-autogen, elixir-format msgid "Illustration of a green alien" msgstr "Ilustração de um alienígena verde" @@ -71,17 +71,17 @@ msgstr "Ilustração de um alienígena verde" msgid "Intermediate" msgstr "Intermediário" -#: lib/content/course_live/lesson_play.html.heex:99 +#: lib/content/course_live/lesson_play.html.heex:98 #, elixir-autogen, elixir-format msgid "Next step" msgstr "Próxima etapa" -#: lib/content/course_live/lesson_completed.ex:30 +#: lib/content/course_live/lesson_completed.ex:32 #, elixir-autogen, elixir-format msgid "Not bad!" msgstr "Nada mal!" -#: lib/content/course_live/lesson_completed.ex:26 +#: lib/content/course_live/lesson_completed.ex:28 #, elixir-autogen, elixir-format msgid "Perfect!" msgstr "Perfeito!" @@ -96,22 +96,22 @@ msgstr "Pedir para participar" msgid "That's incorrect." msgstr "Está incorreto." -#: lib/content/course_live/lesson_completed.ex:31 +#: lib/content/course_live/lesson_completed.ex:33 #, elixir-autogen, elixir-format msgid "There's room for improvement" msgstr "Tem espaço para melhorar" -#: lib/content/course_live/lesson_play.ex:93 +#: lib/content/course_live/lesson_play.ex:90 #, elixir-autogen, elixir-format msgid "Unable to complete lesson" msgstr "Não foi possível concluir a aula" -#: lib/content/course_live/lesson_play.ex:56 +#: lib/content/course_live/lesson_play.ex:53 #, elixir-autogen, elixir-format msgid "Unable to select option" msgstr "Não foi possível selecionar a alternativa" -#: lib/content/course_live/lesson_completed.ex:28 +#: lib/content/course_live/lesson_completed.ex:30 #, elixir-autogen, elixir-format msgid "Very good!" msgstr "Muito bem!" @@ -121,7 +121,7 @@ msgstr "Muito bem!" msgid "Well done!" msgstr "Boa!" -#: lib/content/course_live/lesson_completed.html.heex:11 +#: lib/content/course_live/lesson_completed.html.heex:13 #, elixir-autogen, elixir-format msgid "You got %{correct} out of %{total} answers right." msgstr "Você acertou %{correct} de %{total} respostas." @@ -131,7 +131,7 @@ msgstr "Você acertou %{correct} de %{total} respostas." msgid "Lesson cover" msgstr "Capa da aula" -#: lib/content/course_live/lesson_play.html.heex:16 +#: lib/content/course_live/lesson_play.html.heex:15 #, elixir-autogen, elixir-format msgid "Your progress in this lesson will be lost. Would you like to quit?" msgstr "O seu progresso nesta aula será perdido. Você gostaria de sair?" @@ -151,7 +151,12 @@ msgstr "Para começar, entre em um curso." msgid "No courses" msgstr "Nenhum curso" -#: lib/content/course_live/lesson_play.ex:79 +#: lib/content/course_live/lesson_play.ex:76 #, elixir-autogen, elixir-format msgid "Unable to send answer" msgstr "Não foi possível enviar a resposta" + +#: lib/content/course_live/lesson_completed.html.heex:12 +#, elixir-autogen, elixir-format +msgid "You got all the answers correct!" +msgstr "Você acertou todas as respostas!" diff --git a/priv/gettext/pt/LC_MESSAGES/default.po b/priv/gettext/pt/LC_MESSAGES/default.po index ed541008..74780d09 100644 --- a/priv/gettext/pt/LC_MESSAGES/default.po +++ b/priv/gettext/pt/LC_MESSAGES/default.po @@ -73,7 +73,7 @@ msgstr "Oops, algo deu errado! Por favor, verifique os erros abaixo." #: lib/dashboard/lessons/components/option_list.ex:95 #: lib/dashboard/schools/school_edit.html.heex:8 #: lib/dashboard/schools/school_user_list.html.heex:68 -#: lib/organizations/school_live/school_new.html.heex:10 +#: lib/organizations/school_live/school_new.html.heex:9 #, elixir-autogen, elixir-format msgid "Saving..." msgstr "Salvando..." @@ -153,7 +153,7 @@ msgstr "Nome" msgid "Profile" msgstr "Perfil" -#: lib/content/course_live/lesson_play.html.heex:99 +#: lib/content/course_live/lesson_play.html.heex:98 #, elixir-autogen, elixir-format msgid "Confirm" msgstr "Confirmar" @@ -197,7 +197,7 @@ msgstr "Redefinindo..." msgid "Username or email address" msgstr "Nome de usuário ou endereço de e-mail" -#: lib/content/course_live/lesson_play.html.heex:19 +#: lib/content/course_live/lesson_play.html.heex:18 #, elixir-autogen, elixir-format, fuzzy msgid "Close" msgstr "fechar" @@ -262,7 +262,7 @@ msgstr "Fechar barra lateral" #: lib/components/delete_item.ex:17 #: lib/components/delete_item.ex:21 #: lib/dashboard/schools/school_edit.ex:93 -#: lib/layouts/menu_utils.ex:102 +#: lib/layouts/menu_utils.ex:101 #: lib/layouts/templates/app.html.heex:78 #: lib/layouts/templates/dashboard_course.html.heex:50 #, elixir-autogen, elixir-format @@ -357,13 +357,6 @@ msgstr "Pesquisar..." msgid "No results found." msgstr "Nenhum resultado encontrado." -#: lib/content/course_live/lesson_play.html.heex:113 -#, elixir-autogen, elixir-format -msgid "Contact school" -msgstr "Falar com a escola" - -#: lib/dashboard/schools/school_billing.ex:53 -#: lib/dashboard/schools/school_billing.ex:55 #: lib/layouts/components/app_menu.ex:39 #: lib/support/contact_live/contact.ex:15 #: lib/support/contact_live/contact.html.heex:3 @@ -376,21 +369,11 @@ msgstr "Fale conosco" msgid "Message sent!" msgstr "Mensagem enviada!" -#: lib/content/course_live/lesson_play.html.heex:106 -#, elixir-autogen, elixir-format -msgid "Subscription expired" -msgstr "Assinatura expirada" - #: lib/support/contact_live/contact.ex:29 #, elixir-autogen, elixir-format, fuzzy msgid "There was an error sending your message. Please try again." msgstr "Houve um erro ao enviar sua mensagem. Por favor, tente novamente." -#: lib/content/course_live/lesson_play.html.heex:109 -#, elixir-autogen, elixir-format -msgid "Your school manager needs to renew their subscription. Please, contact them." -msgstr "A sua escola precisa renovar a assinatura. Por favor, entre em contato com eles." - #: lib/layouts/templates/app.html.heex:54 #, elixir-autogen, elixir-format msgid "Setup" diff --git a/priv/gettext/pt/LC_MESSAGES/errors.po b/priv/gettext/pt/LC_MESSAGES/errors.po index 9c8180f4..b4487e7a 100644 --- a/priv/gettext/pt/LC_MESSAGES/errors.po +++ b/priv/gettext/pt/LC_MESSAGES/errors.po @@ -14,7 +14,7 @@ msgstr "" msgid "can't be blank" msgstr "não pode ficar em branco" -#: lib/organizations/school_schema.ex:125 +#: lib/organizations/school_schema.ex:109 #, elixir-autogen msgid "has already been taken" msgstr "já está em uso" @@ -165,8 +165,8 @@ msgstr "Você não está matriculado neste curso" msgid "Your enrollment is pending approval" msgstr "A sua matrícula está pendente de aprovação" -#: lib/organizations/school_schema.ex:66 -#: lib/organizations/school_schema.ex:67 +#: lib/organizations/school_schema.ex:64 +#: lib/organizations/school_schema.ex:65 #, elixir-autogen, elixir-format, fuzzy msgid "must start with https://" msgstr "deve começar com https://" @@ -186,17 +186,12 @@ msgstr "não pode excluir a única aula" msgid "must have a domain name" msgstr "deve ter um nome de domínio" -#: lib/organizations/school_schema.ex:114 -#, elixir-autogen, elixir-format -msgid "must be white_label" -msgstr "precisa ser white_label" - #: lib/error/permission_error.ex:15 #, elixir-autogen, elixir-format msgid "Permission denied" msgstr "Permissão negada" -#: lib/organizations/school_schema.ex:65 +#: lib/organizations/school_schema.ex:63 #, elixir-autogen, elixir-format msgid "is not allowed" msgstr "não é permitido" diff --git a/priv/gettext/pt/LC_MESSAGES/orgs.po b/priv/gettext/pt/LC_MESSAGES/orgs.po index 270d79cb..f0b9f457 100644 --- a/priv/gettext/pt/LC_MESSAGES/orgs.po +++ b/priv/gettext/pt/LC_MESSAGES/orgs.po @@ -11,20 +11,20 @@ msgstr "" "Language: pt\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: lib/organizations/school_live/school_new.html.heex:8 +#: lib/organizations/school_live/school_new.html.heex:7 #, elixir-autogen, elixir-format msgid "Choose a nickname to acess your school profile" msgstr "Escolha um apelido para acessar o perfil da sua escola" #: lib/organizations/school_live/school_new.ex:12 #: lib/organizations/school_live/school_new.html.heex:3 -#: lib/organizations/school_live/school_new.html.heex:11 +#: lib/organizations/school_live/school_new.html.heex:10 #, elixir-autogen, elixir-format msgid "Create school" msgstr "Criar escola" #: lib/dashboard/schools/school_edit.html.heex:12 -#: lib/organizations/school_live/school_new.html.heex:8 +#: lib/organizations/school_live/school_new.html.heex:7 #, elixir-autogen, elixir-format msgid "Nickname" msgstr "Apelido" @@ -35,13 +35,13 @@ msgid "School could not be created" msgstr "Não foi possível criar a escola" #: lib/dashboard/schools/school_edit.html.heex:14 -#: lib/organizations/school_live/school_new.html.heex:7 +#: lib/organizations/school_live/school_new.html.heex:6 #, elixir-autogen, elixir-format msgid "School email" msgstr "E-mail da escola" #: lib/dashboard/schools/school_edit.html.heex:13 -#: lib/organizations/school_live/school_new.html.heex:6 +#: lib/organizations/school_live/school_new.html.heex:5 #, elixir-autogen, elixir-format msgid "School name" msgstr "Nome da escola" @@ -104,7 +104,6 @@ msgstr "Não foi possível rejeitar o usuário!" msgid "Could not remove user!" msgstr "Não foi possível remover o usuário!" -#: lib/billing/billing_utils.ex:60 #: lib/dashboard/courses/course_user_list.html.heex:26 #: lib/dashboard/schools/school_user_list.html.heex:25 #, elixir-autogen, elixir-format @@ -607,26 +606,6 @@ msgstr "Exigir confirmação de e-mail?" msgid "When checked, users will be required to confirm their email address before they can log in." msgstr "Ao marcar, os usuários deverão confirmar o endereço de e-mail antes de poderem fazer login." -#: lib/organizations/school_live/school_new.html.heex:5 -#, elixir-autogen, elixir-format -msgid "App type" -msgstr "Tipo do aplicativo" - -#: lib/organizations/school_live/school_new.ex:53 -#, elixir-autogen, elixir-format -msgid "Marketplace" -msgstr "Loja virtual" - -#: lib/organizations/school_live/school_new.ex:53 -#, elixir-autogen, elixir-format -msgid "SaaS" -msgstr "SaaS" - -#: lib/organizations/school_live/school_new.ex:53 -#, elixir-autogen, elixir-format -msgid "White label" -msgstr "White label" - #: lib/dashboard/schools/school_edit.html.heex:22 #, elixir-autogen, elixir-format msgid "Allow anyone to sign up?" @@ -753,197 +732,18 @@ msgstr "Função na escola" msgid "Search users" msgstr "Pesquisar usuários" -#: lib/billing/billing_utils.ex:12 -#, elixir-autogen, elixir-format -msgid "%{count} users" -msgstr "%{count} usuários" - -#: lib/dashboard/schools/school_billing.html.heex:62 -#, elixir-autogen, elixir-format -msgid "* Dedicated infrastructure is optional and it may have an extra cost depending on your needs." -msgstr "* A infraestrutura dedicada é opcional e pode ter um custo extra dependendo das suas necessidades." - -#: lib/dashboard/schools/school_billing.html.heex:30 -#, elixir-autogen, elixir-format -msgid "/month per user" -msgstr "/mês por usuário" - -#: lib/billing/billing_utils.ex:28 -#, elixir-autogen, elixir-format -msgid "25% off add-ons" -msgstr "25% de desconto em complementos" - -#: lib/dashboard/schools/school_billing.ex:25 -#: lib/layouts/menu_utils.ex:101 -#, elixir-autogen, elixir-format -msgid "Billing" -msgstr "Faturamento" - -#: lib/billing/billing_utils.ex:21 -#, elixir-autogen, elixir-format -msgid "Cancel anytime" -msgstr "Cancele a qualquer momento" - -#: lib/billing/billing_utils.ex:59 -#, elixir-autogen, elixir-format -msgid "Confirmed" -msgstr "Confirmado" - -#: lib/dashboard/schools/school_billing.ex:38 -#, elixir-autogen, elixir-format -msgid "Contact us" -msgstr "Fale conosco" - -#: lib/dashboard/schools/school_billing.ex:44 -#: lib/dashboard/schools/school_billing.ex:45 -#: lib/dashboard/schools/school_billing.ex:49 -#: lib/dashboard/schools/school_billing.ex:54 -#: lib/dashboard/schools/school_billing.html.heex:18 -#: lib/dashboard/schools/school_view.html.heex:46 -#, elixir-autogen, elixir-format -msgid "Current plan" -msgstr "Plano atual" - -#: lib/billing/billing_utils.ex:15 -#, elixir-autogen, elixir-format -msgid "Custom domain" -msgstr "Domínio personalizado" - -#: lib/billing/billing_utils.ex:14 -#, elixir-autogen, elixir-format -msgid "Custom logo" -msgstr "Logotipo personalizado" - -#: lib/billing/billing_utils.ex:27 -#, elixir-autogen, elixir-format -msgid "Dedicated infrastructure *" -msgstr "Infraestrutura dedicada *" - -#: lib/billing/billing_utils.ex:25 -#, elixir-autogen, elixir-format -msgid "Discounted pricing for 1,000+ users" -msgstr "Preços com desconto para mais de 1.000 usuários" - -#: lib/dashboard/schools/school_billing.ex:46 -#: lib/dashboard/schools/school_billing.ex:51 -#, elixir-autogen, elixir-format -msgid "Downgrade" -msgstr "Diminuir plano" - -#: lib/billing/billing_utils.ex:44 -#, elixir-autogen, elixir-format -msgid "Enterprise" -msgstr "Corporativo" - -#: lib/billing/billing_utils.ex:24 -#, elixir-autogen, elixir-format -msgid "Everything in Flexible" -msgstr "Tudo do Flexível" - -#: lib/billing/billing_utils.ex:18 -#, elixir-autogen, elixir-format -msgid "Everything in Hobby" -msgstr "Tudo do Hobby" - -#: lib/billing/billing_utils.ex:61 -#, elixir-autogen, elixir-format -msgid "Failed" -msgstr "Falhou" - -#: lib/billing/billing_utils.ex:20 -#, elixir-autogen, elixir-format -msgid "Faster support" -msgstr "Suporte mais rápido" - -#: lib/billing/billing_utils.ex:41 -#, elixir-autogen, elixir-format -msgid "Flexible" -msgstr "Flexível" - -#: lib/dashboard/schools/school_billing.ex:36 -#, elixir-autogen, elixir-format -msgid "Free" -msgstr "Gratuito" - -#: lib/billing/billing_utils.ex:40 -#, elixir-autogen, elixir-format -msgid "Get started for free." -msgstr "Comece gratuitamente." - -#: lib/billing/billing_utils.ex:40 -#, elixir-autogen, elixir-format -msgid "Hobby" -msgstr "Hobby" - -#: lib/billing/billing_utils.ex:41 -#, elixir-autogen, elixir-format -msgid "Pay as you go." -msgstr "Pagamento conforme o uso." - -#: lib/dashboard/schools/school_view.html.heex:47 -#, elixir-autogen, elixir-format -msgid "Payment status" -msgstr "Status do pagamento" - -#: lib/billing/billing_utils.ex:26 -#, elixir-autogen, elixir-format -msgid "Priority support" -msgstr "Suporte prioritário" - -#: lib/billing/billing_utils.ex:45 -#, elixir-autogen, elixir-format -msgid "Priority support and dedicated infrastructure." -msgstr "Suporte prioritário e infraestrutura dedicada." - -#: lib/dashboard/schools/school_billing.html.heex:3 -#, elixir-autogen, elixir-format -msgid "Select your currency" -msgstr "Selecione a moeda" - -#: lib/dashboard/schools/school_view.html.heex:42 -#, elixir-autogen, elixir-format -msgid "Subscription" -msgstr "Assinatura" - -#: lib/dashboard/schools/school_view.ex:49 -#: lib/dashboard/schools/school_view.ex:67 -#, elixir-autogen, elixir-format -msgid "Subscription updated" -msgstr "Assinatura atualizada" - -#: lib/billing/billing_utils.ex:13 -#, elixir-autogen, elixir-format -msgid "Unlimited lessons" -msgstr "Aulas ilimitadas" - -#: lib/billing/billing_utils.ex:19 -#, elixir-autogen, elixir-format -msgid "Unlimited users" -msgstr "Usuários ilimitados" - -#: lib/dashboard/schools/school_view.html.heex:51 -#, elixir-autogen, elixir-format, fuzzy -msgid "Update subscription" -msgstr "Atualizar assinatura" - -#: lib/dashboard/schools/school_billing.ex:48 -#: lib/dashboard/schools/school_billing.ex:50 -#, elixir-autogen, elixir-format -msgid "Upgrade" -msgstr "Melhorar plano" - #: lib/dashboard/schools/school_view.html.heex:37 #, elixir-autogen, elixir-format, fuzzy msgid "Delete" msgstr "Apagar" #: lib/dashboard/schools/school_edit.ex:83 -#: lib/dashboard/schools/school_view.ex:89 +#: lib/dashboard/schools/school_view.ex:42 #, elixir-autogen, elixir-format, fuzzy msgid "School could not be deleted" msgstr "Não foi possível excluir a escola" -#: lib/dashboard/schools/school_view.ex:83 +#: lib/dashboard/schools/school_view.ex:36 #, elixir-autogen, elixir-format msgid "School deleted" msgstr "Escola excluída" diff --git a/priv/gettext/zh_TW/LC_MESSAGES/courses.po b/priv/gettext/zh_TW/LC_MESSAGES/courses.po index 2cceb5d0..6954090e 100644 --- a/priv/gettext/zh_TW/LC_MESSAGES/courses.po +++ b/priv/gettext/zh_TW/LC_MESSAGES/courses.po @@ -21,7 +21,7 @@ msgstr "已向教師報名課程。" msgid "Advanced" msgstr "進階" -#: lib/content/course_live/lesson_completed.html.heex:19 +#: lib/content/course_live/lesson_completed.html.heex:21 #, elixir-autogen, elixir-format msgid "Back to the course" msgstr "返回課程" @@ -31,7 +31,7 @@ msgstr "返回課程" msgid "Beginner" msgstr "初級" -#: lib/content/course_live/lesson_play.html.heex:95 +#: lib/content/course_live/lesson_play.html.heex:94 #, elixir-autogen, elixir-format msgid "Confirming..." msgstr "確認中..." @@ -41,7 +41,7 @@ msgstr "確認中..." msgid "Enrolled successfully!" msgstr "成功報名!" -#: lib/content/course_live/lesson_completed.ex:27 +#: lib/content/course_live/lesson_completed.ex:29 #, elixir-autogen, elixir-format msgid "Excellent!" msgstr "優秀!" @@ -56,12 +56,12 @@ msgstr "專家" msgid "Failed to enroll" msgstr "報名失敗" -#: lib/content/course_live/lesson_completed.ex:29 +#: lib/content/course_live/lesson_completed.ex:31 #, elixir-autogen, elixir-format msgid "Good!" msgstr "好!" -#: lib/content/course_live/lesson_completed.html.heex:4 +#: lib/content/course_live/lesson_completed.html.heex:5 #, elixir-autogen, elixir-format msgid "Illustration of a green alien" msgstr "綠色外星人的插圖" @@ -71,17 +71,17 @@ msgstr "綠色外星人的插圖" msgid "Intermediate" msgstr "中級" -#: lib/content/course_live/lesson_play.html.heex:99 +#: lib/content/course_live/lesson_play.html.heex:98 #, elixir-autogen, elixir-format msgid "Next step" msgstr "下一步" -#: lib/content/course_live/lesson_completed.ex:30 +#: lib/content/course_live/lesson_completed.ex:32 #, elixir-autogen, elixir-format msgid "Not bad!" msgstr "不錯!" -#: lib/content/course_live/lesson_completed.ex:26 +#: lib/content/course_live/lesson_completed.ex:28 #, elixir-autogen, elixir-format msgid "Perfect!" msgstr "完美!" @@ -96,22 +96,22 @@ msgstr "請求加入" msgid "That's incorrect." msgstr "這是不正確的。" -#: lib/content/course_live/lesson_completed.ex:31 +#: lib/content/course_live/lesson_completed.ex:33 #, elixir-autogen, elixir-format msgid "There's room for improvement" msgstr "有改進的空間" -#: lib/content/course_live/lesson_play.ex:93 +#: lib/content/course_live/lesson_play.ex:90 #, elixir-autogen, elixir-format msgid "Unable to complete lesson" msgstr "無法完成課程" -#: lib/content/course_live/lesson_play.ex:56 +#: lib/content/course_live/lesson_play.ex:53 #, elixir-autogen, elixir-format msgid "Unable to select option" msgstr "無法選擇選項" -#: lib/content/course_live/lesson_completed.ex:28 +#: lib/content/course_live/lesson_completed.ex:30 #, elixir-autogen, elixir-format msgid "Very good!" msgstr "非常好!" @@ -121,7 +121,7 @@ msgstr "非常好!" msgid "Well done!" msgstr "做得好!" -#: lib/content/course_live/lesson_completed.html.heex:11 +#: lib/content/course_live/lesson_completed.html.heex:13 #, elixir-autogen, elixir-format msgid "You got %{correct} out of %{total} answers right." msgstr "您的答案中有 %{correct} 個是正確的,總共有 %{total} 個問題。" @@ -131,7 +131,7 @@ msgstr "您的答案中有 %{correct} 個是正確的,總共有 %{total} 個 msgid "Lesson cover" msgstr "課程封面" -#: lib/content/course_live/lesson_play.html.heex:16 +#: lib/content/course_live/lesson_play.html.heex:15 #, elixir-autogen, elixir-format msgid "Your progress in this lesson will be lost. Would you like to quit?" msgstr "您在這堂課的進度將會遺失。您想要退出嗎?" @@ -151,7 +151,12 @@ msgstr "加入課程開始學習。" msgid "No courses" msgstr "沒有課程" -#: lib/content/course_live/lesson_play.ex:79 +#: lib/content/course_live/lesson_play.ex:76 #, elixir-autogen, elixir-format msgid "Unable to send answer" msgstr "無法傳送答案" + +#: lib/content/course_live/lesson_completed.html.heex:12 +#, elixir-autogen, elixir-format +msgid "You got all the answers correct!" +msgstr "您全部答對了!" diff --git a/priv/gettext/zh_TW/LC_MESSAGES/default.po b/priv/gettext/zh_TW/LC_MESSAGES/default.po index f5109cb4..d821fad4 100644 --- a/priv/gettext/zh_TW/LC_MESSAGES/default.po +++ b/priv/gettext/zh_TW/LC_MESSAGES/default.po @@ -73,7 +73,7 @@ msgstr "哎呀,出了些問題!請檢查以下的錯誤。" #: lib/dashboard/lessons/components/option_list.ex:95 #: lib/dashboard/schools/school_edit.html.heex:8 #: lib/dashboard/schools/school_user_list.html.heex:68 -#: lib/organizations/school_live/school_new.html.heex:10 +#: lib/organizations/school_live/school_new.html.heex:9 #, elixir-autogen, elixir-format msgid "Saving..." msgstr "儲存中..." @@ -153,7 +153,7 @@ msgstr "名稱" msgid "Profile" msgstr "個人資料" -#: lib/content/course_live/lesson_play.html.heex:99 +#: lib/content/course_live/lesson_play.html.heex:98 #, elixir-autogen, elixir-format msgid "Confirm" msgstr "確認" @@ -197,7 +197,7 @@ msgstr "重設中..." msgid "Username or email address" msgstr "使用者名稱或電子郵件地址" -#: lib/content/course_live/lesson_play.html.heex:19 +#: lib/content/course_live/lesson_play.html.heex:18 #, elixir-autogen, elixir-format, fuzzy msgid "Close" msgstr "關閉" @@ -262,7 +262,7 @@ msgstr "關閉側邊欄" #: lib/components/delete_item.ex:17 #: lib/components/delete_item.ex:21 #: lib/dashboard/schools/school_edit.ex:93 -#: lib/layouts/menu_utils.ex:102 +#: lib/layouts/menu_utils.ex:101 #: lib/layouts/templates/app.html.heex:78 #: lib/layouts/templates/dashboard_course.html.heex:50 #, elixir-autogen, elixir-format @@ -357,13 +357,6 @@ msgstr "搜尋..." msgid "No results found." msgstr "找不到結果。" -#: lib/content/course_live/lesson_play.html.heex:113 -#, elixir-autogen, elixir-format -msgid "Contact school" -msgstr "聯絡學校" - -#: lib/dashboard/schools/school_billing.ex:53 -#: lib/dashboard/schools/school_billing.ex:55 #: lib/layouts/components/app_menu.ex:39 #: lib/support/contact_live/contact.ex:15 #: lib/support/contact_live/contact.html.heex:3 @@ -376,21 +369,11 @@ msgstr "聯絡我們" msgid "Message sent!" msgstr "訊息已傳送!" -#: lib/content/course_live/lesson_play.html.heex:106 -#, elixir-autogen, elixir-format -msgid "Subscription expired" -msgstr "訂閱已到期" - #: lib/support/contact_live/contact.ex:29 #, elixir-autogen, elixir-format, fuzzy msgid "There was an error sending your message. Please try again." msgstr "傳送您的訊息時發生錯誤。請再試一次。" -#: lib/content/course_live/lesson_play.html.heex:109 -#, elixir-autogen, elixir-format -msgid "Your school manager needs to renew their subscription. Please, contact them." -msgstr "您的學校管理員需要更新他們的訂閱。請聯絡他們。" - #: lib/layouts/templates/app.html.heex:54 #, elixir-autogen, elixir-format msgid "Setup" diff --git a/priv/gettext/zh_TW/LC_MESSAGES/errors.po b/priv/gettext/zh_TW/LC_MESSAGES/errors.po index fb1fd14b..8f02852e 100644 --- a/priv/gettext/zh_TW/LC_MESSAGES/errors.po +++ b/priv/gettext/zh_TW/LC_MESSAGES/errors.po @@ -15,7 +15,7 @@ msgid "can't be blank" msgstr "不能為空" ## From Ecto.Changeset.unique_constraint/3 -#: lib/organizations/school_schema.ex:125 +#: lib/organizations/school_schema.ex:109 #, elixir-autogen msgid "has already been taken" msgstr "已被使用" @@ -175,8 +175,8 @@ msgstr "您未註冊此課程" msgid "Your enrollment is pending approval" msgstr "您的註冊正在等待批准" -#: lib/organizations/school_schema.ex:66 -#: lib/organizations/school_schema.ex:67 +#: lib/organizations/school_schema.ex:64 +#: lib/organizations/school_schema.ex:65 #, elixir-autogen, elixir-format, fuzzy msgid "must start with https://" msgstr "必須以 https:// 開頭" @@ -196,17 +196,12 @@ msgstr "不能刪除唯一的課程" msgid "must have a domain name" msgstr "必須有一個網域名稱" -#: lib/organizations/school_schema.ex:114 -#, elixir-autogen, elixir-format -msgid "must be white_label" -msgstr "必須是 white_label" - #: lib/error/permission_error.ex:15 #, elixir-autogen, elixir-format msgid "Permission denied" msgstr "權限不足" -#: lib/organizations/school_schema.ex:65 +#: lib/organizations/school_schema.ex:63 #, elixir-autogen, elixir-format msgid "is not allowed" msgstr "不允許" diff --git a/priv/gettext/zh_TW/LC_MESSAGES/orgs.po b/priv/gettext/zh_TW/LC_MESSAGES/orgs.po index f7d26482..316d2cc1 100644 --- a/priv/gettext/zh_TW/LC_MESSAGES/orgs.po +++ b/priv/gettext/zh_TW/LC_MESSAGES/orgs.po @@ -11,20 +11,20 @@ msgstr "" "Language: zh_TW\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: lib/organizations/school_live/school_new.html.heex:8 +#: lib/organizations/school_live/school_new.html.heex:7 #, elixir-autogen, elixir-format msgid "Choose a nickname to acess your school profile" msgstr "選擇一個暱稱以存取您的學校資料" #: lib/organizations/school_live/school_new.ex:12 #: lib/organizations/school_live/school_new.html.heex:3 -#: lib/organizations/school_live/school_new.html.heex:11 +#: lib/organizations/school_live/school_new.html.heex:10 #, elixir-autogen, elixir-format msgid "Create school" msgstr "建立學校" #: lib/dashboard/schools/school_edit.html.heex:12 -#: lib/organizations/school_live/school_new.html.heex:8 +#: lib/organizations/school_live/school_new.html.heex:7 #, elixir-autogen, elixir-format msgid "Nickname" msgstr "暱稱" @@ -35,13 +35,13 @@ msgid "School could not be created" msgstr "無法建立學校" #: lib/dashboard/schools/school_edit.html.heex:14 -#: lib/organizations/school_live/school_new.html.heex:7 +#: lib/organizations/school_live/school_new.html.heex:6 #, elixir-autogen, elixir-format msgid "School email" msgstr "學校電子郵件" #: lib/dashboard/schools/school_edit.html.heex:13 -#: lib/organizations/school_live/school_new.html.heex:6 +#: lib/organizations/school_live/school_new.html.heex:5 #, elixir-autogen, elixir-format msgid "School name" msgstr "學校名稱" @@ -104,7 +104,6 @@ msgstr "無法拒絕使用者!" msgid "Could not remove user!" msgstr "無法移除使用者!" -#: lib/billing/billing_utils.ex:60 #: lib/dashboard/courses/course_user_list.html.heex:26 #: lib/dashboard/schools/school_user_list.html.heex:25 #, elixir-autogen, elixir-format @@ -607,26 +606,6 @@ msgstr "需要電子郵件確認?" msgid "When checked, users will be required to confirm their email address before they can log in." msgstr "勾選後,使用者在登入前必須確認他們的電子郵件地址。" -#: lib/organizations/school_live/school_new.html.heex:5 -#, elixir-autogen, elixir-format -msgid "App type" -msgstr "應用程式類型" - -#: lib/organizations/school_live/school_new.ex:53 -#, elixir-autogen, elixir-format -msgid "Marketplace" -msgstr "市場" - -#: lib/organizations/school_live/school_new.ex:53 -#, elixir-autogen, elixir-format -msgid "SaaS" -msgstr "軟體作為服務" - -#: lib/organizations/school_live/school_new.ex:53 -#, elixir-autogen, elixir-format -msgid "White label" -msgstr "白色標籤" - #: lib/dashboard/schools/school_edit.html.heex:22 #, elixir-autogen, elixir-format msgid "Allow anyone to sign up?" @@ -753,197 +732,18 @@ msgstr "學校角色" msgid "Search users" msgstr "搜尋使用者" -#: lib/billing/billing_utils.ex:12 -#, elixir-autogen, elixir-format -msgid "%{count} users" -msgstr "%{count} 使用者" - -#: lib/dashboard/schools/school_billing.html.heex:62 -#, elixir-autogen, elixir-format -msgid "* Dedicated infrastructure is optional and it may have an extra cost depending on your needs." -msgstr "* 專用基礎架構是可選的,並且根據您的需求可能會有額外的費用。" - -#: lib/dashboard/schools/school_billing.html.heex:30 -#, elixir-autogen, elixir-format -msgid "/month per user" -msgstr "/月 每位使用者" - -#: lib/billing/billing_utils.ex:28 -#, elixir-autogen, elixir-format -msgid "25% off add-ons" -msgstr "25% 折扣附加元件" - -#: lib/dashboard/schools/school_billing.ex:25 -#: lib/layouts/menu_utils.ex:101 -#, elixir-autogen, elixir-format -msgid "Billing" -msgstr "帳單" - -#: lib/billing/billing_utils.ex:21 -#, elixir-autogen, elixir-format -msgid "Cancel anytime" -msgstr "隨時取消" - -#: lib/billing/billing_utils.ex:59 -#, elixir-autogen, elixir-format -msgid "Confirmed" -msgstr "已確認" - -#: lib/dashboard/schools/school_billing.ex:38 -#, elixir-autogen, elixir-format -msgid "Contact us" -msgstr "聯絡我們" - -#: lib/dashboard/schools/school_billing.ex:44 -#: lib/dashboard/schools/school_billing.ex:45 -#: lib/dashboard/schools/school_billing.ex:49 -#: lib/dashboard/schools/school_billing.ex:54 -#: lib/dashboard/schools/school_billing.html.heex:18 -#: lib/dashboard/schools/school_view.html.heex:46 -#, elixir-autogen, elixir-format -msgid "Current plan" -msgstr "目前方案" - -#: lib/billing/billing_utils.ex:15 -#, elixir-autogen, elixir-format -msgid "Custom domain" -msgstr "自訂網域" - -#: lib/billing/billing_utils.ex:14 -#, elixir-autogen, elixir-format -msgid "Custom logo" -msgstr "自訂標誌" - -#: lib/billing/billing_utils.ex:27 -#, elixir-autogen, elixir-format -msgid "Dedicated infrastructure *" -msgstr "專用基礎架構 *" - -#: lib/billing/billing_utils.ex:25 -#, elixir-autogen, elixir-format -msgid "Discounted pricing for 1,000+ users" -msgstr "1,000+ 使用者的折扣價格" - -#: lib/dashboard/schools/school_billing.ex:46 -#: lib/dashboard/schools/school_billing.ex:51 -#, elixir-autogen, elixir-format -msgid "Downgrade" -msgstr "降級" - -#: lib/billing/billing_utils.ex:44 -#, elixir-autogen, elixir-format -msgid "Enterprise" -msgstr "企業" - -#: lib/billing/billing_utils.ex:24 -#, elixir-autogen, elixir-format -msgid "Everything in Flexible" -msgstr "Flexible 中的所有內容" - -#: lib/billing/billing_utils.ex:18 -#, elixir-autogen, elixir-format -msgid "Everything in Hobby" -msgstr "Hobby 中的所有內容" - -#: lib/billing/billing_utils.ex:61 -#, elixir-autogen, elixir-format -msgid "Failed" -msgstr "失敗" - -#: lib/billing/billing_utils.ex:20 -#, elixir-autogen, elixir-format -msgid "Faster support" -msgstr "更快的支援" - -#: lib/billing/billing_utils.ex:41 -#, elixir-autogen, elixir-format -msgid "Flexible" -msgstr "Flexible" - -#: lib/dashboard/schools/school_billing.ex:36 -#, elixir-autogen, elixir-format -msgid "Free" -msgstr "免費" - -#: lib/billing/billing_utils.ex:40 -#, elixir-autogen, elixir-format -msgid "Get started for free." -msgstr "免費開始。" - -#: lib/billing/billing_utils.ex:40 -#, elixir-autogen, elixir-format -msgid "Hobby" -msgstr "Hobby" - -#: lib/billing/billing_utils.ex:41 -#, elixir-autogen, elixir-format -msgid "Pay as you go." -msgstr "按使用量付費。" - -#: lib/dashboard/schools/school_view.html.heex:47 -#, elixir-autogen, elixir-format -msgid "Payment status" -msgstr "付款狀態" - -#: lib/billing/billing_utils.ex:26 -#, elixir-autogen, elixir-format -msgid "Priority support" -msgstr "優先支援" - -#: lib/billing/billing_utils.ex:45 -#, elixir-autogen, elixir-format -msgid "Priority support and dedicated infrastructure." -msgstr "優先支援和專用基礎架構。" - -#: lib/dashboard/schools/school_billing.html.heex:3 -#, elixir-autogen, elixir-format -msgid "Select your currency" -msgstr "選擇您的貨幣" - -#: lib/dashboard/schools/school_view.html.heex:42 -#, elixir-autogen, elixir-format -msgid "Subscription" -msgstr "訂閱" - -#: lib/dashboard/schools/school_view.ex:49 -#: lib/dashboard/schools/school_view.ex:67 -#, elixir-autogen, elixir-format -msgid "Subscription updated" -msgstr "訂閱已更新" - -#: lib/billing/billing_utils.ex:13 -#, elixir-autogen, elixir-format -msgid "Unlimited lessons" -msgstr "無限課程" - -#: lib/billing/billing_utils.ex:19 -#, elixir-autogen, elixir-format -msgid "Unlimited users" -msgstr "無限使用者" - -#: lib/dashboard/schools/school_view.html.heex:51 -#, elixir-autogen, elixir-format, fuzzy -msgid "Update subscription" -msgstr "更新訂閱" - -#: lib/dashboard/schools/school_billing.ex:48 -#: lib/dashboard/schools/school_billing.ex:50 -#, elixir-autogen, elixir-format -msgid "Upgrade" -msgstr "升級" - #: lib/dashboard/schools/school_view.html.heex:37 #, elixir-autogen, elixir-format, fuzzy msgid "Delete" msgstr "刪除" #: lib/dashboard/schools/school_edit.ex:83 -#: lib/dashboard/schools/school_view.ex:89 +#: lib/dashboard/schools/school_view.ex:42 #, elixir-autogen, elixir-format, fuzzy msgid "School could not be deleted" msgstr "無法刪除學校" -#: lib/dashboard/schools/school_view.ex:83 +#: lib/dashboard/schools/school_view.ex:36 #, elixir-autogen, elixir-format msgid "School deleted" msgstr "學校已刪除" diff --git a/priv/repo/migrations/20231122122119_add_kind_field_to_schools.exs b/priv/repo/migrations/20231122122119_add_kind_field_to_schools.exs deleted file mode 100644 index 34a39bc4..00000000 --- a/priv/repo/migrations/20231122122119_add_kind_field_to_schools.exs +++ /dev/null @@ -1,13 +0,0 @@ -defmodule Zoonk.Repo.Migrations.AddKindFieldToSchools do - use Ecto.Migration - - def change do - alter table(:schools) do - add :kind, :string, default: "white_label", null: false - end - - create constraint(:schools, :valid_kind, - check: "kind in ('marketplace', 'saas', 'white_label')" - ) - end -end diff --git a/priv/repo/seed/README.md b/priv/repo/seed/README.md index 5552d0d2..2e30cc20 100644 --- a/priv/repo/seed/README.md +++ b/priv/repo/seed/README.md @@ -2,15 +2,13 @@ ## Arguments -| Argument | Description | Options | Default | -| ------------ | ------------------------------------------------------------------ | --------------------- | ------------- | -| `--kind` | The kind of data to seed. | `saas`, `white_label` | `white_label` | -| `--multiple` | Create multiple items. This is ideal when testing infinite scroll. | `boolean` | `false` | +| Argument | Description | Options | Default | +| ------------ | ------------------------------------------------------------------ | --------- | ------- | +| `--multiple` | Create multiple items. This is ideal when testing infinite scroll. | `boolean` | `false` | ## Examples ```sh mix seed -mix seed --kind=saas -mix seed --kind=saas --multiple +mix seed --multiple ``` diff --git a/priv/repo/seed/schools.ex b/priv/repo/seed/schools.ex index 24e11715..f6ddb39c 100644 --- a/priv/repo/seed/schools.ex +++ b/priv/repo/seed/schools.ex @@ -42,15 +42,10 @@ defmodule SchoolSeed do Seeds the database with schools. """ def seed(args \\ %{}) do - kind = Map.get(args, :kind, :white_label) multiple? = Map.get(args, :multiple?, false) - - app = create_app(kind) - - if kind != :white_label do - schools = generate_school_attrs(multiple?) - Enum.each(schools, fn attrs -> create_school(attrs, app, multiple?: multiple?) end) - end + app = create_app() + schools = generate_school_attrs(multiple?) + Enum.each(schools, fn attrs -> create_school(attrs, app, multiple?: multiple?) end) end defp generate_school_attrs(false), do: @schools @@ -83,9 +78,9 @@ defmodule SchoolSeed do create_students(school, multiple?) end - defp create_app(kind) do + defp create_app() do manager = Accounts.get_user_by_username(Enum.at(@app.managers, 0)) - attrs = Map.merge(@app, %{created_by_id: manager.id, kind: kind}) + attrs = Map.merge(@app, %{created_by_id: manager.id}) {:ok, school} = Organizations.create_school(attrs) create_school_users(school, attrs) school diff --git a/priv/repo/seed/seed.ex b/priv/repo/seed/seed.ex index 817c47ed..b15b5c35 100644 --- a/priv/repo/seed/seed.ex +++ b/priv/repo/seed/seed.ex @@ -1,15 +1,6 @@ defmodule Seed do alias ZoonkWeb.Shared.Utilities - def get_kind(args) do - args - |> Enum.find(fn arg -> String.starts_with?(arg, "--kind=") end) - |> get_kind_arg() - |> String.split("=") - |> List.last() - |> String.to_atom() - end - # Generate multiple items. This is ideal for testing infinite scroll. def multiple?(args) do args @@ -20,9 +11,6 @@ defmodule Seed do |> Utilities.string_to_boolean() end - defp get_kind_arg(nil), do: "white_label" - defp get_kind_arg(kind), do: kind - defp get_multiple_arg(nil), do: "false" defp get_multiple_arg(multiple), do: multiple end diff --git a/priv/repo/seeds.exs b/priv/repo/seeds.exs index edf1c1e4..23046e6f 100644 --- a/priv/repo/seeds.exs +++ b/priv/repo/seeds.exs @@ -4,10 +4,9 @@ Code.require_file("priv/repo/seed/courses.ex") Code.require_file("priv/repo/seed/seed.ex") args = System.argv() -kind = Seed.get_kind(args) multiple? = Seed.multiple?(args) -seed_args = %{kind: kind, multiple?: multiple?} +seed_args = %{multiple?: multiple?} UserSeed.seed(seed_args) SchoolSeed.seed(seed_args) diff --git a/test/content/course_list_live_test.exs b/test/content/course_list_live_test.exs index 79be6cf6..6bfcda82 100644 --- a/test/content/course_list_live_test.exs +++ b/test/content/course_list_live_test.exs @@ -156,19 +156,9 @@ defmodule ZoonkWeb.CourseListLiveTest do end end - describe "/courses (marketplace school)" do + describe "/courses (main app)" do setup do - app_setup(%{conn: build_conn()}, school_kind: :marketplace) - end - - test "displays the create school menu", %{conn: conn} do - assert_create_school_menu(conn) - end - end - - describe "/courses (saas school)" do - setup do - app_setup(%{conn: build_conn()}, school_kind: :saas) + app_setup(%{conn: build_conn()}) end test "displays the create school menu", %{conn: conn} do @@ -176,7 +166,7 @@ defmodule ZoonkWeb.CourseListLiveTest do end test "doesn't display the create school menu for a child school", %{conn: conn, school: school} do - child_school = school_fixture(%{school_id: school.id, kind: :white_label}) + child_school = school_fixture(%{school_id: school.id}) host = "#{child_school.slug}.#{school.custom_domain}" conn = Map.put(conn, :host, host) {:ok, lv, _html} = live(conn, ~p"/courses") @@ -184,24 +174,13 @@ defmodule ZoonkWeb.CourseListLiveTest do end test "doesn't display courses from child schools", %{conn: conn, school: school} do - child_school = school_fixture(%{school_id: school.id, kind: :white_label}) + child_school = school_fixture(%{school_id: school.id}) course = course_fixture(%{school_id: child_school.id, published?: true}) {:ok, lv, _html} = live(conn, ~p"/courses") refute has_element?(lv, get_course_el(course)) end end - describe "/courses (white label school)" do - setup do - app_setup(%{conn: build_conn()}, school_kind: :white_label) - end - - test "doesn't display the create school menu", %{conn: conn} do - {:ok, lv, _html} = live(conn, ~p"/courses") - refute has_element?(lv, ~s|li a:fl-icontains("create school")|) - end - end - defp course_el(id, course), do: ~s|#courses-#{id} a[href="/c/#{course.slug}"]| defp get_course_el(course), do: course_el("list", course) diff --git a/test/dashboard/dashboard_home_test.exs b/test/dashboard/dashboard_home_test.exs index 6de01f13..fc5c2598 100644 --- a/test/dashboard/dashboard_home_test.exs +++ b/test/dashboard/dashboard_home_test.exs @@ -57,34 +57,21 @@ defmodule ZoonkWeb.DashboardHomeLiveTest do end end - describe "/dashboard (saas)" do + describe "/dashboard (main app)" do setup do - app_setup(%{conn: build_conn()}, school_user: :manager, school_kind: :saas) - end - - test "renders the schools menu", %{conn: conn} do - {:ok, lv, _html} = live(conn, ~p"/dashboard") - assert has_element?(lv, schools_el()) - end - end - - describe "/dashboard (marketplace)" do - setup do - app_setup(%{conn: build_conn()}, school_user: :manager, school_kind: :marketplace) + app_setup(%{conn: build_conn()}, school_user: :manager) end test "renders the schools menu", %{conn: conn} do {:ok, lv, _html} = live(conn, ~p"/dashboard") assert has_element?(lv, schools_el()) end - end - describe "/dashboard (white label)" do - setup do - app_setup(%{conn: build_conn()}, school_user: :manager, school_kind: :white_label) - end + test "doesn't render the schools menu for child schools", %{conn: conn, school: school, user: user} do + child_school = school_fixture(%{school_id: school.id}) + school_user_fixture(%{user: user, school: child_school, role: :manager}) + conn = Map.put(conn, :host, "#{child_school.slug}.#{school.custom_domain}") - test "renders the schools menu", %{conn: conn} do {:ok, lv, _html} = live(conn, ~p"/dashboard") refute has_element?(lv, schools_el()) end diff --git a/test/dashboard/school_view_test.exs b/test/dashboard/school_view_test.exs index efc9b1fe..a89ed0c5 100644 --- a/test/dashboard/school_view_test.exs +++ b/test/dashboard/school_view_test.exs @@ -30,7 +30,7 @@ defmodule ZoonkWeb.DashboardSchoolViewTest do describe "/dashboard/schools/:id (managers)" do setup do - app_setup(%{conn: build_conn()}, school_user: :manager, school_kind: :saas) + app_setup(%{conn: build_conn()}, school_user: :manager) end test "displays school", %{conn: conn, school: school} do diff --git a/test/organizations/organizations_context_test.exs b/test/organizations/organizations_context_test.exs index a37d6012..fb12a66d 100644 --- a/test/organizations/organizations_context_test.exs +++ b/test/organizations/organizations_context_test.exs @@ -235,27 +235,6 @@ defmodule Zoonk.OrganizationsTest do valid_attrs = Map.delete(valid_school_attributes(), :created_by_id) assert {:error, %Ecto.Changeset{}} = Organizations.create_school_and_manager(user, valid_attrs) end - - test "a child school cannot have a saas kind" do - user = user_fixture() - school = school_fixture() - valid_attrs = valid_school_attributes(%{created_by_id: user.id, school_id: school.id, kind: :saas}) - assert {:error, %Ecto.Changeset{}} = Organizations.create_school_and_manager(user, valid_attrs) - end - - test "a child school cannot have a marketplace kind" do - user = user_fixture() - school = school_fixture() - valid_attrs = valid_school_attributes(%{created_by_id: user.id, school_id: school.id, kind: :marketplace}) - assert {:error, %Ecto.Changeset{}} = Organizations.create_school_and_manager(user, valid_attrs) - end - - test "a child school can have a white_label kind" do - user = user_fixture() - school = school_fixture() - valid_attrs = valid_school_attributes(%{created_by_id: user.id, school_id: school.id, kind: :white_label}) - assert {:ok, %School{}} = Organizations.create_school_and_manager(user, valid_attrs) - end end describe "update_school/2" do @@ -275,12 +254,6 @@ defmodule Zoonk.OrganizationsTest do assert {:error, %Ecto.Changeset{}} = Organizations.update_school(school, invalid_attrs) end - test "don't allow to update the kind field" do - school = school_fixture(%{kind: :white_label}) - assert {:ok, %School{} = updated_school} = Organizations.update_school(school, %{kind: :saas}) - assert updated_school.kind == :white_label - end - test "don't allow private schools to allow guests" do school = school_fixture(%{allow_guests?: false, public?: false}) assert {:ok, %School{} = updated_school} = Organizations.update_school(school, %{allow_guests?: true}) diff --git a/test/organizations/school_new_live_test.exs b/test/organizations/school_new_live_test.exs index de8d04be..eb56bbfe 100644 --- a/test/organizations/school_new_live_test.exs +++ b/test/organizations/school_new_live_test.exs @@ -31,64 +31,15 @@ defmodule ZoonkWeb.NewSchoolLiveTest do assert school_user.role == :manager assert school_user.approved? == true end - - test "allows to create a white label school", %{conn: conn, user: user} do - attrs = valid_school_attributes() - conn = Map.put(conn, :host, attrs.custom_domain) - - {:ok, lv, _html} = live(conn, ~p"/schools/new") - - lv - |> form(@school_form, school: %{name: attrs.name, email: attrs.email, slug: attrs.slug, kind: "white_label"}) - |> render_submit() - |> follow_redirect(conn, ~p"/dashboard") - - school = Organizations.get_school_by_slug!(attrs.slug) - assert school.created_by_id == user.id - assert school.name == attrs.name - assert school.kind == :white_label - end - - test "allows to create a SaaS school", %{conn: conn, user: user} do - attrs = valid_school_attributes() - conn = Map.put(conn, :host, attrs.custom_domain) - - {:ok, lv, _html} = live(conn, ~p"/schools/new") - - lv - |> form(@school_form, school: %{name: attrs.name, email: attrs.email, slug: attrs.slug, kind: "saas"}) - |> render_submit() - |> follow_redirect(conn, ~p"/dashboard") - - school = Organizations.get_school_by_slug!(attrs.slug) - assert school.created_by_id == user.id - assert school.name == attrs.name - assert school.kind == :saas - end - - test "allows to create a marketplace school", %{conn: conn, user: user} do - attrs = valid_school_attributes() - conn = Map.put(conn, :host, attrs.custom_domain) - - {:ok, lv, _html} = live(conn, ~p"/schools/new") - - lv - |> form(@school_form, school: %{name: attrs.name, email: attrs.email, slug: attrs.slug, kind: "marketplace"}) - |> render_submit() - |> follow_redirect(conn, ~p"/dashboard") - - school = Organizations.get_school_by_slug!(attrs.slug) - assert school.created_by_id == user.id - assert school.name == attrs.name - assert school.kind == :marketplace - end end describe "New school page (authenticated users, school configured)" do setup :app_setup - test "renders an error if the school is configured and it's a white label school", %{conn: conn} do - school_fixture() + test "renders an error if the school is configured and it's a child school", %{conn: conn, school: school} do + child_school = school_fixture(%{school_id: school.id}) + conn = Map.put(conn, :host, "#{child_school.slug}.#{school.custom_domain}") + assert_error_sent 403, fn -> get(conn, ~p"/schools/new") end end end @@ -102,7 +53,7 @@ defmodule ZoonkWeb.NewSchoolLiveTest do describe "New school page (guest user)" do setup do - set_school_with_guest_user(%{conn: build_conn()}, %{kind: :saas}) + set_school_with_guest_user(%{conn: build_conn()}) end test "redirects to the setup page", %{conn: conn} do @@ -110,32 +61,4 @@ defmodule ZoonkWeb.NewSchoolLiveTest do assert redirected_to(result) =~ "/users/settings" end end - - describe "New school (SaaS app)" do - setup do - app_setup(%{conn: build_conn()}, school_kind: :saas) - end - - test "allows to create a school", %{conn: conn, school: school, user: user} do - attrs = valid_school_attributes() - - {:ok, lv, _html} = live(conn, ~p"/schools/new") - - refute has_element?(lv, ~s|select[id="school_kind"]|) - - {:error, {:redirect, %{to: redirected_url}}} = - lv - |> form(@school_form, school: %{name: attrs.name, email: attrs.email, slug: attrs.slug}) - |> render_submit() - - assert redirected_url == "https://#{attrs.slug}.#{school.custom_domain}/dashboard" - - child_school = Organizations.get_school_by_slug!(attrs.slug) - assert child_school.created_by_id == user.id - assert child_school.name == attrs.name - assert child_school.kind == :white_label - assert child_school.school_id == school.id - refute child_school.public? - end - end end diff --git a/test/support/conn_case.ex b/test/support/conn_case.ex index be1cb119..5f784fe6 100644 --- a/test/support/conn_case.ex +++ b/test/support/conn_case.ex @@ -113,10 +113,9 @@ defmodule ZoonkWeb.ConnCase do def app_setup(%{conn: conn}, opts \\ []) do public_school? = Keyword.get(opts, :public_school?, true) school_id = Keyword.get(opts, :school_id, nil) - school_kind = Keyword.get(opts, :school_kind, :white_label) allow_guests? = Keyword.get(opts, :allow_guests?, false) - school_attrs = %{public?: public_school?, allow_guests?: allow_guests?, school_id: school_id, kind: school_kind} + school_attrs = %{public?: public_school?, allow_guests?: allow_guests?, school_id: school_id} school_user_attrs = opts |> Keyword.get(:school_user, :student) |> get_user_attrs() %{conn: register_conn, user: user, password: password} = register_and_log_in_user(%{conn: conn})