diff --git a/Dockerfile.development b/Dockerfile.development index 9e312f5f75df..e1b89c13497d 100644 --- a/Dockerfile.development +++ b/Dockerfile.development @@ -1,7 +1,7 @@ # syntax=docker/dockerfile:1 ARG NODE_VERSION=18 ARG PYTHON_VERSION=3.12 -ARG POETRY_VERSION=1.8.4 +ARG POETRY_VERSION=2.0.1 ARG VERSION_OVERRIDE ARG BRANCH_OVERRIDE diff --git a/label_studio/core/views.py b/label_studio/core/views.py index 464d6c40b395..2da04840c649 100644 --- a/label_studio/core/views.py +++ b/label_studio/core/views.py @@ -13,7 +13,7 @@ import pandas as pd import requests from core import utils -from core.feature_flags import flag_set, all_flags, get_feature_file_path +from core.feature_flags import all_flags, flag_set, get_feature_file_path from core.label_config import generate_time_series_json from core.utils.common import collect_versions from core.utils.io import find_file @@ -57,7 +57,7 @@ def main(request): # business mode access if flag_set("fflag_all_feat_dia_1777_ls_homepage_short"): return render(request, 'home/home.html') - else + else: return redirect(reverse('projects:project-index')) # not authenticated diff --git a/label_studio/users/views.py b/label_studio/users/views.py index 53a97dbe04d6..07352ebeb29e 100644 --- a/label_studio/users/views.py +++ b/label_studio/users/views.py @@ -22,8 +22,6 @@ home_page_enabled = flag_set("fflag_all_feat_dia_1777_ls_homepage_short") main_redirect = "projects:project-index" -if home_page_enabled: - main_redirect = "main" @login_required def logout(request): @@ -45,7 +43,10 @@ def user_signup(request): # checks if the URL is a safe redirection. if not next_page or not url_has_allowed_host_and_scheme(url=next_page, allowed_hosts=request.get_host()): - next_page = reverse(main_redirect) + if flag_set("fflag_all_feat_dia_1777_ls_homepage_short"): + next_page = reverse("main") + else: + next_page = reverse("projects:project-index") user_form = forms.UserSignupForm() organization_form = OrganizationSignupForm() @@ -105,7 +106,10 @@ def user_login(request): # checks if the URL is a safe redirection. if not next_page or not url_has_allowed_host_and_scheme(url=next_page, allowed_hosts=request.get_host()): - next_page = reverse(main_redirect) + if flag_set("fflag_all_feat_dia_1777_ls_homepage_short"): + next_page = reverse("main") + else: + next_page = reverse("projects:project-index") login_form = load_func(settings.USER_LOGIN_FORM) form = login_form() diff --git a/web/apps/labelstudio/src/components/Menubar/Menubar.jsx b/web/apps/labelstudio/src/components/Menubar/Menubar.jsx index d55d25a97dbb..c5af0b9e40d1 100644 --- a/web/apps/labelstudio/src/components/Menubar/Menubar.jsx +++ b/web/apps/labelstudio/src/components/Menubar/Menubar.jsx @@ -26,7 +26,7 @@ import "./Menubar.scss"; import "./MenuContent.scss"; import "./MenuSidebar.scss"; import { ModelsPage } from "../../pages/Organization/Models/ModelsPage"; -import { FF_DIA_835, isFF } from "../../utils/feature-flags"; +import { FF_DIA_835, FF_HOMEPAGE, isFF } from "../../utils/feature-flags"; import { IconHome } from "@humansignal/ui"; export const MenubarContext = createContext(); @@ -189,7 +189,7 @@ export const Menubar = ({ enabled, defaultOpened, defaultPinned, children, onSid style={{ width: 240 }} > - } data-external exact /> + {isFF(FF_HOMEPAGE) && } data-external exact />} } data-external exact /> } data-external exact /> {isFF(FF_DIA_835) && } exact />} diff --git a/web/apps/labelstudio/src/pages/index.js b/web/apps/labelstudio/src/pages/index.js index 7acad5fefe4e..96fe2680b5a1 100644 --- a/web/apps/labelstudio/src/pages/index.js +++ b/web/apps/labelstudio/src/pages/index.js @@ -2,5 +2,6 @@ import { ProjectsPage } from "./Projects/Projects"; import { HomePage } from "./Home/HomePage"; import { OrganizationPage } from "./Organization"; import { ModelsPage } from "./Organization/Models/ModelsPage"; +import { FF_HOMEPAGE, isFF } from "../utils/feature-flags"; -export const Pages = [HomePage, ProjectsPage, OrganizationPage, ModelsPage]; +export const Pages = [isFF(FF_HOMEPAGE) && HomePage, ProjectsPage, OrganizationPage, ModelsPage].filter(Boolean); diff --git a/web/apps/labelstudio/src/utils/feature-flags.ts b/web/apps/labelstudio/src/utils/feature-flags.ts index bd318d20a74c..23e5dd811102 100644 --- a/web/apps/labelstudio/src/utils/feature-flags.ts +++ b/web/apps/labelstudio/src/utils/feature-flags.ts @@ -40,6 +40,8 @@ export const FF_PRODUCT_TOUR = "fflag_feat_dia_1697_product_tour_short"; */ export const FF_UNSAVED_CHANGES = "fflag_feat_front_leap_1198_unsaved_changes_180724"; +export const FF_HOMEPAGE = "fflag_all_feat_dia_1777_ls_homepage_short"; + export function isFF(id: string) { // TODO: remove the override + if statement once LSE and LSO start building react the same way and fflag_fix_front_lsdv_4620_memory_leaks_100723_short is removed const override: Record = {