From d74a67742e37cb020808d753b843216f336724e7 Mon Sep 17 00:00:00 2001 From: Rachel Tipton Date: Thu, 12 Oct 2023 17:50:29 +0200 Subject: [PATCH 1/7] add test for create_new_site_group --- tests/test_get_data.py | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/tests/test_get_data.py b/tests/test_get_data.py index b76b8a5..5d3edd4 100644 --- a/tests/test_get_data.py +++ b/tests/test_get_data.py @@ -3,6 +3,7 @@ add_site_to_site_group, create_new_site, create_user, + create_new_site_group, get_all_users, get_all_site_groups, ) @@ -111,3 +112,22 @@ def test_create_user(db_session): assert user_1.email == "test_user@test.org" assert user_1.site_group.site_group_name == "test_site_group" assert user_1.site_group_uuid == site_group_1.site_group_uuid + + +# test to create a new site group +def test_create_new_site_group(db_session): + """Test to creat a new site group.""" + + site_1 = make_site(db_session=db_session, ml_id=1) + site_2 = make_site(db_session=db_session, ml_id=2) + site_3 = make_site(db_session=db_session, ml_id=3) + + new_site_group = create_new_site_group( + session=db_session, site_group_name="new_site_group" + ) + new_site_group.sites.append(site_1) + new_site_group.sites.append(site_2) + new_site_group.sites.append(site_3) + + assert new_site_group.site_group_name == "new_site_group" + assert len(new_site_group.sites) == 3 From 06053c094d2e0fb1932c0cbd13fea8021ac56bad Mon Sep 17 00:00:00 2001 From: Rachel Tipton Date: Thu, 12 Oct 2023 17:52:26 +0200 Subject: [PATCH 2/7] add create_new_site_group --- src/get_data.py | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/src/get_data.py b/src/get_data.py index 057f2f0..cb0efcd 100644 --- a/src/get_data.py +++ b/src/get_data.py @@ -307,6 +307,18 @@ def create_user( session.add(user) site_group.users.append(user) session.commit() - print(user) return user + + +# create a new site group +def create_new_site_group(session: Session, site_group_name: str) -> SiteGroupSQL: + """Creating a new site group + :param session: database session + :param site_group_name: name of the site group this user will be part of""" + + new_site_group = SiteGroupSQL(site_group_name=site_group_name) + session.add(new_site_group) + session.commit() + + return new_site_group From 1785e0e8460cfbcf4b30c7f69378c506cc519f7d Mon Sep 17 00:00:00 2001 From: Rachel Tipton Date: Thu, 12 Oct 2023 17:53:32 +0200 Subject: [PATCH 3/7] add create new site group section --- src/sites_toolbox.py | 51 +++++++++++++++++++++++++++++++++++++++----- 1 file changed, 46 insertions(+), 5 deletions(-) diff --git a/src/sites_toolbox.py b/src/sites_toolbox.py index 901f73b..6fede6e 100644 --- a/src/sites_toolbox.py +++ b/src/sites_toolbox.py @@ -17,6 +17,7 @@ from get_data import ( create_new_site, + create_new_site_group, create_user, get_all_users, get_all_site_groups, @@ -318,7 +319,7 @@ def sites_toolbox_page(): # create a new site st.markdown( - f'

{"Create New Site"}

', + f'

{"Create Site"}

', unsafe_allow_html=True, ) with st.expander("Input new site data"): @@ -406,7 +407,7 @@ def sites_toolbox_page(): # create a new user st.markdown( - f'

{"Create New User"}

', + f'

{"Create User"}

', unsafe_allow_html=True, ) @@ -419,7 +420,9 @@ def sites_toolbox_page(): unsafe_allow_html=True, ) email = st.text_input("User Email") - site_group_name = st.selectbox("Select a group", site_groups, key="site_group") + site_group_name = st.selectbox( + "Select a group", site_groups, key="site_group" + ) email_validation = validate_email(email) # check that site group exists if st.button(f"Create new user"): @@ -434,7 +437,6 @@ def sites_toolbox_page(): unsafe_allow_html=True, ) else: - user = create_user( session=session, email=email, @@ -450,4 +452,43 @@ def sites_toolbox_page(): if st.button("Close details"): st.empty() - + + # create site group + st.markdown( + f'

{"Create Site Group"}

', + unsafe_allow_html=True, + ) + + with st.expander("Input new group data"): + with connection.get_session() as session: + st.markdown( + f'

{"Site Group Information"}

', + unsafe_allow_html=True, + ) + new_site_group_name = st.text_input("Enter new site group name") + # check that site group exists + if st.button(f"Create new site group"): + if new_site_group_name == "": + st.markdown( + f'

{"Please enter a valid name for the site group."}

', + unsafe_allow_html=True, + ) + elif new_site_group_name in site_groups: + st.markdown( + f'

{"This site group already exists."}

', + unsafe_allow_html=True, + ) + else: + new_site_group = create_new_site_group( + session=session, + site_group_name=new_site_group_name, + ) + new_site_group_details = { + "site_group": str(new_site_group.site_group_name), + "site_group_uuid": str(new_site_group.site_group_uuid), + "date_added": (new_site_group.created_utc.strftime("%Y-%m-%d")), + } + st.json(new_site_group_details) + + if st.button("Close details"): + st.empty() From f86962a534ac7d8d84c971c3ce33ddc9e1369a12 Mon Sep 17 00:00:00 2001 From: Rachel Tipton Date: Fri, 13 Oct 2023 10:30:00 +0200 Subject: [PATCH 4/7] remove test for create_new_site_group --- tests/test_get_data.py | 18 ------------------ 1 file changed, 18 deletions(-) diff --git a/tests/test_get_data.py b/tests/test_get_data.py index 5d3edd4..e7d17a9 100644 --- a/tests/test_get_data.py +++ b/tests/test_get_data.py @@ -113,21 +113,3 @@ def test_create_user(db_session): assert user_1.site_group.site_group_name == "test_site_group" assert user_1.site_group_uuid == site_group_1.site_group_uuid - -# test to create a new site group -def test_create_new_site_group(db_session): - """Test to creat a new site group.""" - - site_1 = make_site(db_session=db_session, ml_id=1) - site_2 = make_site(db_session=db_session, ml_id=2) - site_3 = make_site(db_session=db_session, ml_id=3) - - new_site_group = create_new_site_group( - session=db_session, site_group_name="new_site_group" - ) - new_site_group.sites.append(site_1) - new_site_group.sites.append(site_2) - new_site_group.sites.append(site_3) - - assert new_site_group.site_group_name == "new_site_group" - assert len(new_site_group.sites) == 3 From fd004770dcb9099cdb1839a951b9d7c1d79b1790 Mon Sep 17 00:00:00 2001 From: Rachel Tipton Date: Fri, 13 Oct 2023 10:37:32 +0200 Subject: [PATCH 5/7] remove create_new_site_group --- src/get_data.py | 13 ------------- 1 file changed, 13 deletions(-) diff --git a/src/get_data.py b/src/get_data.py index cb0efcd..0b3f4ad 100644 --- a/src/get_data.py +++ b/src/get_data.py @@ -309,16 +309,3 @@ def create_user( session.commit() return user - - -# create a new site group -def create_new_site_group(session: Session, site_group_name: str) -> SiteGroupSQL: - """Creating a new site group - :param session: database session - :param site_group_name: name of the site group this user will be part of""" - - new_site_group = SiteGroupSQL(site_group_name=site_group_name) - session.add(new_site_group) - session.commit() - - return new_site_group From 3a6e0ba12f0c177a06e30fde2ab2a5fe13a80e7f Mon Sep 17 00:00:00 2001 From: Rachel Tipton Date: Fri, 13 Oct 2023 10:38:57 +0200 Subject: [PATCH 6/7] replace create_new_site_group --- src/sites_toolbox.py | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/src/sites_toolbox.py b/src/sites_toolbox.py index 6fede6e..b568d3a 100644 --- a/src/sites_toolbox.py +++ b/src/sites_toolbox.py @@ -7,7 +7,7 @@ from sqlalchemy import func from pvsite_datamodel.connection import DatabaseConnection from pvsite_datamodel.sqlmodels import SiteSQL -from pvsite_datamodel.write.user_and_site import make_user +from pvsite_datamodel.write.user_and_site import make_site_group from pvsite_datamodel.read import ( get_all_sites, get_user_by_email, @@ -17,7 +17,6 @@ from get_data import ( create_new_site, - create_new_site_group, create_user, get_all_users, get_all_site_groups, @@ -479,8 +478,8 @@ def sites_toolbox_page(): unsafe_allow_html=True, ) else: - new_site_group = create_new_site_group( - session=session, + new_site_group = make_site_group( + db_session=session, site_group_name=new_site_group_name, ) new_site_group_details = { From 0c594141458beff4602e7776efc2c11895d4a0ab Mon Sep 17 00:00:00 2001 From: Rachel Tipton Date: Fri, 13 Oct 2023 10:50:16 +0200 Subject: [PATCH 7/7] remove import of create_new_site_group --- tests/test_get_data.py | 1 - 1 file changed, 1 deletion(-) diff --git a/tests/test_get_data.py b/tests/test_get_data.py index e7d17a9..55774ca 100644 --- a/tests/test_get_data.py +++ b/tests/test_get_data.py @@ -3,7 +3,6 @@ add_site_to_site_group, create_new_site, create_user, - create_new_site_group, get_all_users, get_all_site_groups, )