Toggle navigation
Toggle navigation
This project
Loading...
Sign in
Gabriel Weisse
/
presupuestov1
Go to a project
Toggle navigation
Toggle navigation pinning
Projects
Groups
Snippets
Help
Project
Activity
Repository
Pipelines
Graphs
Issues
0
Merge Requests
0
Wiki
Network
Create a new issue
Builds
Commits
Authored by
pr0nstar
2026-04-21 09:31:06 -0400
Browse Files
Options
Browse Files
Download
Email Patches
Plain Diff
Commit
21789cfc81437eedafccb52a519faf07a88408db
21789cfc
1 parent
4499ce42
XV
Show whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
69 additions
and
12 deletions
cache.py
models/project.py
routers/project.py
schemas/project.py
cache.py
View file @
21789cf
...
...
@@ -7,11 +7,14 @@ from aiocache import Cache
REDIS_CONN
=
open
(
'./docs/redis'
)
.
read
()
.
strip
()
REDIS_PASS
,
REDIS_CONN
=
REDIS_CONN
.
split
(
'@'
)
REDIS_CONN
=
REDIS_CONN
.
split
(
':'
)
cache
=
Cache
(
Cache
.
REDIS
,
endpoint
=
REDIS_CONN
[
0
],
port
=
REDIS_CONN
[
1
],
namespace
=
'httpcache'
endpoint
=
REDIS_CONN
[
0
],
port
=
REDIS_CONN
[
1
],
password
=
REDIS_PASS
.
strip
(
' :'
),
namespace
=
'httpcache'
,
)
# cache = Cache()
...
...
models/project.py
View file @
21789cf
...
...
@@ -41,3 +41,20 @@ class ProyectoResumenes(Base):
objeto
:
Mapped
[
str
]
=
mapped_column
(
Text
)
finfun
:
Mapped
[
str
]
=
mapped_column
(
Text
)
acteco
:
Mapped
[
str
]
=
mapped_column
(
Text
)
class
ProyectoClasificadores
(
Base
):
__tablename__
=
"proyecto_clasificadores"
gestion
:
Mapped
[
int
]
=
mapped_column
(
Integer
)
tipo
:
Mapped
[
str
]
=
mapped_column
(
String
(
16
))
nivel
:
Mapped
[
str
]
=
mapped_column
(
String
(
24
))
programa_proyecto
:
Mapped
[
str
]
=
mapped_column
(
String
(
32
))
codigo
:
Mapped
[
str
]
=
mapped_column
(
String
(
32
))
codigo_padre
:
Mapped
[
str
|
None
]
=
mapped_column
(
String
(
32
))
devengado
:
Mapped
[
float
]
=
mapped_column
(
Numeric
(
30
,
15
))
desc
:
Mapped
[
str
]
=
mapped_column
(
Text
)
desc_padre
:
Mapped
[
str
|
None
]
=
mapped_column
(
Text
)
...
...
routers/project.py
View file @
21789cf
...
...
@@ -41,7 +41,7 @@ def fetch_programa_proyecto(
return
project_items
@router.get
(
'/{project_id}/proyectos'
)
@router.get
(
'/{project_id}/proyectos'
,
response_model
=
List
[
schemas
.
project
.
ProyectoProyectos
]
)
@not_found
def
fetch_programa_proyecto_proyectos
(
project_id
:
str
,
...
...
@@ -71,31 +71,55 @@ def fetch_programa_proyecto_proyectos(
)
.
mappings
()
.
all
()
@router.get
(
'/{project_id}/objetos'
)
@not_found
@router.get
(
'/{project_id}/objetos'
,
response_model
=
List
[
schemas
.
project
.
ProyectoClasificadores
])
def
fetch_programa_proyecto_objetos
(
project_id
:
int
,
db
:
Session
=
Depends
(
model
.
get_db
),
query
:
schema
.
QueryParams
=
Depends
(),
):
return
[]
return
get_clasificadores
(
db
,
'objeto'
,
project_id
,
query
)
@router.get
(
'/{project_id}/finfuns'
)
@not_found
@router.get
(
'/{project_id}/finfuns'
,
response_model
=
List
[
schemas
.
project
.
ProyectoClasificadores
])
def
fetch_programa_proyecto_finfuns
(
project_id
:
int
,
db
:
Session
=
Depends
(
model
.
get_db
),
query
:
schema
.
QueryParams
=
Depends
(),
):
return
[]
return
get_clasificadores
(
db
,
'finfun'
,
project_id
,
query
)
@router.get
(
'/{project_id}/actecos'
)
@not_found
@router.get
(
'/{project_id}/actecos'
,
response_model
=
List
[
schemas
.
project
.
ProyectoClasificadores
])
def
fetch_programa_proyecto_actecos
(
project_id
:
int
,
db
:
Session
=
Depends
(
model
.
get_db
),
query
:
schema
.
QueryParams
=
Depends
(),
):
return
[]
return
get_clasificadores
(
db
,
'acteco'
,
project_id
,
query
)
###############################################################################
# private
###############################################################################
@not_found
def
get_clasificadores
(
db
,
tipo_codigo
,
programa_proyecto
,
query
):
page_size
=
10
page
=
query
.
page
or
1
ProyectoClasificadoresSchema
=
schemas
.
project
.
ProyectoClasificadores
ProyectoClasificadores
=
models
.
project
.
ProyectoClasificadores
schema_fields
=
ProyectoClasificadoresSchema
.
model_fields
.
keys
()
cols
=
[
getattr
(
ProyectoClasificadores
,
name
)
for
name
in
schema_fields
]
filters
=
[
ProyectoClasificadores
.
tipo
==
tipo_codigo
,
ProyectoClasificadores
.
programa_proyecto
==
programa_proyecto
,
]
if
query
.
gestion
is
not
None
:
filters
.
append
(
ProyectoClasificadores
.
gestion
==
query
.
gestion
)
return
select
(
*
cols
)
.
where
(
*
filters
)
.
offset
(
(
page
-
1
)
*
page_size
)
.
limit
(
page_size
)
.
mappings
()
.
all
()
...
...
schemas/project.py
View file @
21789cf
...
...
@@ -26,10 +26,23 @@ class ProyectoResumen(OrmBaseModel):
acteco
:
str
|
List
[
ProyectoResumenObj
]
class
ProyectoClasificadores
(
OrmBaseModel
):
gestion
:
int
tipo
:
str
nivel
:
str
programa_proyecto
:
str
codigo
:
str
codigo_padre
:
str
|
None
devengado
:
float
desc
:
str
desc_padre
:
str
|
None
class
ProyectoProyectos
(
OrmBaseModel
):
nivel
:
str
codigo
:
str
desc
:
str
devengado
:
float
class
ProjectSearch
(
BaseModel
):
...
...
Please
register
or
login
to post a comment