From b3699812aaa263e018e22c5d21314949d95c6067 Mon Sep 17 00:00:00 2001 From: Juan Elias Rodriguez Date: Sat, 7 Aug 2021 19:55:54 -0300 Subject: [PATCH 1/2] Share data between user group --- controllers/expedientes.py | 7 ++++++- models/db_pydoctor.py | 9 +++++++++ 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/controllers/expedientes.py b/controllers/expedientes.py index 9681d0f..3802bfd 100644 --- a/controllers/expedientes.py +++ b/controllers/expedientes.py @@ -12,6 +12,11 @@ CHUNK_SIZE = 4096 +def group(): + group_name=db(db.auth_group.role).select().first() + return group_name + + @auth.requires_login() def index(): 'muestra la grilla y permite la edición de los datos de los expedientes' @@ -55,7 +60,7 @@ def index(): ], constraints={ 'expediente': ( - db.expediente.created_by == auth.user.id)}, + db.expediente.created_by_group == group())}, linked_tables=LINKED_TABLES, buttons_placement='right', exportclasses=myexport, diff --git a/models/db_pydoctor.py b/models/db_pydoctor.py index 5e5a9b7..8ec7c82 100644 --- a/models/db_pydoctor.py +++ b/models/db_pydoctor.py @@ -164,6 +164,14 @@ def expediente_numero(value, row): return anchor +def get_group(): + groups = auth.user_groups + if not groups: + return None + group_ids = [id for id in groups if not groups[id].startswith('user_')] + return group_ids[0] if group_ids else None + + db.define_table('expediente', Field('numero', length=40, requires=IS_NOT_IN_DB(db, 'expediente.numero'), @@ -179,6 +187,7 @@ def expediente_numero(value, row): Field('final', 'date', label=T('Fecha fin')), Field('changed_at', 'datetime', update=request.now, readable=False, writable=False), + Field('created_by_group', 'reference auth_group', default=get_group(), update=get_group(), writable=False ), auth.signature, migrate=True, format=expediente_format) From 9cf3db28b567f7587f2cdffc7d724f58b90e8d09 Mon Sep 17 00:00:00 2001 From: Juan Elias Rodriguez Date: Tue, 17 Aug 2021 21:06:56 -0300 Subject: [PATCH 2/2] test-fix --- tests/test_b_expedientes.py | 44 +++++++++++-------------------------- 1 file changed, 13 insertions(+), 31 deletions(-) diff --git a/tests/test_b_expedientes.py b/tests/test_b_expedientes.py index d25b133..03c0645 100644 --- a/tests/test_b_expedientes.py +++ b/tests/test_b_expedientes.py @@ -1,34 +1,4 @@ -# Este es un testing de la funcionalidad de carga y eliminación de expedientes. - -def test_expedientes(page): - # Go to main page - page.goto("http://127.0.0.1:8020/OpenLex/") - - # Click text=Log In - page.click("text=Log In") - - # Click :nth-match(i, 3) - page.click(":nth-match(i, 3)") - # assert page.url == "http://127.0.0.1:8020/OpenLex/default/user/login?_next=/OpenLex/default/index" - - # Click input[name="email"] - page.click("input[name=\"email\"]") - - # Fill input[name="email"] - page.fill("input[name=\"email\"]", "example@example.com") - page.press("input[name=\"email\"]", "Tab") - - # Click input[name="password"] - page.click("input[name=\"password\"]") - - # Fill input[name="password"] - page.fill("input[name=\"password\"]", "openlex1234") - page.press("input[name=\"password\"]", "Tab") - - # Click input:has-text("Log In") - page.click("input:has-text(\"Log In\")") - # assert page.url == "http://127.0.0.1:8020/OpenLex/dashboard/view#" - +def test_expedientes(page, login): # Click text=Expedientes page.click("text=Expedientes") # assert page.url == "http://127.0.0.1:8020/OpenLex/expedientes/index" @@ -98,3 +68,15 @@ def test_expedientes(page): # Click text=Enviar page.click("text=Enviar") # assert page.url == "http://127.0.0.1:8020/OpenLex/expedientes/index/expediente?_signature=9738bd7a4677227cf1a6e2b1ae9a8747b990925a#" + + # Click text=Expedientes + page.click("text=Expedientes") + # assert page.url == "http://127.0.0.1:8020/OpenLex/expedientes/index" + + # Click a:has-text("Editar") + page.click("a:has-text(\"Editar\")") + # assert page.url == "http://127.0.0.1:8020/OpenLex/expedientes/index/expediente/edit/expediente/1?_signature=91f6e51c077f52497a3812868aaebf58ff7b18d4" + + # Click text=Enviar + page.click("text=Enviar") + # assert page.url == "http://127.0.0.1:8020/OpenLex/expedientes/index/expediente?_signature=9738bd7a4677227cf1a6e2b1ae9a8747b990925a#"