pr0nstar

IV

...@@ -13,7 +13,8 @@ from starlette_context.middleware import RawContextMiddleware ...@@ -13,7 +13,8 @@ from starlette_context.middleware import RawContextMiddleware
13 from aiocache import caches 13 from aiocache import caches
14 14
15 from presupuestov1.routers import ( 15 from presupuestov1.routers import (
16 - project 16 + project,
17 + entity
17 ) 18 )
18 19
19 20
...@@ -38,6 +39,7 @@ app = FastAPI( ...@@ -38,6 +39,7 @@ app = FastAPI(
38 root_path='/api' 39 root_path='/api'
39 ) 40 )
40 app.include_router(project.router) 41 app.include_router(project.router)
42 +app.include_router(entity.router)
41 43
42 44
43 @app.on_event('startup') 45 @app.on_event('startup')
......
...@@ -18,6 +18,7 @@ class ActecoEstado(Base): ...@@ -18,6 +18,7 @@ class ActecoEstado(Base):
18 Index("idx_acteco_estado_gestion", "gestion"), 18 Index("idx_acteco_estado_gestion", "gestion"),
19 Index("idx_acteco_estado_acteco", "acteco"), 19 Index("idx_acteco_estado_acteco", "acteco"),
20 Index("idx_acteco_estado_acteco_gestion", "acteco", "gestion"), 20 Index("idx_acteco_estado_acteco_gestion", "acteco", "gestion"),
21 + {"schema": "web"},
21 ) 22 )
22 23
23 id: Mapped[int] = mapped_column(Integer, primary_key=True, autoincrement=True) 24 id: Mapped[int] = mapped_column(Integer, primary_key=True, autoincrement=True)
...@@ -56,6 +57,7 @@ class ActecoEntidad(Base): ...@@ -56,6 +57,7 @@ class ActecoEntidad(Base):
56 Index("idx_acteco_entidad_gestion", "gestion"), 57 Index("idx_acteco_entidad_gestion", "gestion"),
57 Index("idx_acteco_entidad_acteco", "acteco"), 58 Index("idx_acteco_entidad_acteco", "acteco"),
58 Index("idx_acteco_entidad_acteco_entidad", "acteco", "entidad"), 59 Index("idx_acteco_entidad_acteco_entidad", "acteco", "entidad"),
60 + {"schema": "web"},
59 ) 61 )
60 62
61 id: Mapped[int] = mapped_column(Integer, primary_key=True, autoincrement=True) 63 id: Mapped[int] = mapped_column(Integer, primary_key=True, autoincrement=True)
......
...@@ -18,6 +18,7 @@ class ClasInstitucional(Base): ...@@ -18,6 +18,7 @@ class ClasInstitucional(Base):
18 __tablename__ = "clas_institucional" 18 __tablename__ = "clas_institucional"
19 __table_args__ = ( 19 __table_args__ = (
20 Index("idx_clas_institucional_entidad", "entidad"), 20 Index("idx_clas_institucional_entidad", "entidad"),
21 + {"schema": "web"},
21 ) 22 )
22 23
23 entidad: Mapped[int] = mapped_column(Integer, primary_key=True) 24 entidad: Mapped[int] = mapped_column(Integer, primary_key=True)
...@@ -48,6 +49,7 @@ class ClasObjetos(Base): ...@@ -48,6 +49,7 @@ class ClasObjetos(Base):
48 __tablename__ = "clas_objetos" 49 __tablename__ = "clas_objetos"
49 __table_args__ = ( 50 __table_args__ = (
50 Index("idx_clas_objetos_entidad", "objeto"), 51 Index("idx_clas_objetos_entidad", "objeto"),
52 + {"schema": "web"},
51 ) 53 )
52 54
53 nivel: Mapped[str | None] = mapped_column(Text) 55 nivel: Mapped[str | None] = mapped_column(Text)
...@@ -65,6 +67,7 @@ class ClasRubros(Base): ...@@ -65,6 +67,7 @@ class ClasRubros(Base):
65 __tablename__ = "clas_rubros" 67 __tablename__ = "clas_rubros"
66 __table_args__ = ( 68 __table_args__ = (
67 Index("idx_clas_rubros_entidad", "rubro"), 69 Index("idx_clas_rubros_entidad", "rubro"),
70 + {"schema": "web"},
68 ) 71 )
69 72
70 nivel: Mapped[str | None] = mapped_column(Text) 73 nivel: Mapped[str | None] = mapped_column(Text)
...@@ -82,6 +85,7 @@ class ClasFinfun(Base): ...@@ -82,6 +85,7 @@ class ClasFinfun(Base):
82 __tablename__ = "clas_finfun" 85 __tablename__ = "clas_finfun"
83 __table_args__ = ( 86 __table_args__ = (
84 Index("idx_clas_finfun_entidad", "finfun"), 87 Index("idx_clas_finfun_entidad", "finfun"),
88 + {"schema": "web"},
85 ) 89 )
86 90
87 nivel: Mapped[str | None] = mapped_column(Text) 91 nivel: Mapped[str | None] = mapped_column(Text)
...@@ -99,6 +103,7 @@ class ClasActeco(Base): ...@@ -99,6 +103,7 @@ class ClasActeco(Base):
99 __tablename__ = "clas_acteco" 103 __tablename__ = "clas_acteco"
100 __table_args__ = ( 104 __table_args__ = (
101 Index("idx_clas_acteco_entidad", "acteco"), 105 Index("idx_clas_acteco_entidad", "acteco"),
106 + {"schema": "web"},
102 ) 107 )
103 108
104 nivel: Mapped[str | None] = mapped_column(Text) 109 nivel: Mapped[str | None] = mapped_column(Text)
......
...@@ -16,6 +16,7 @@ class EntidadesPorFinfun(Base): ...@@ -16,6 +16,7 @@ class EntidadesPorFinfun(Base):
16 __table_args__ = ( 16 __table_args__ = (
17 Index("idx_entidades_por_finfun_finfun", "finfun"), 17 Index("idx_entidades_por_finfun_finfun", "finfun"),
18 Index("idx_entidades_por_finfun_finfun_nivel", "finfun", "nivel"), 18 Index("idx_entidades_por_finfun_finfun_nivel", "finfun", "nivel"),
19 + {"schema": "web"},
19 ) 20 )
20 21
21 finfun: Mapped[str] = mapped_column(Text, primary_key=True) 22 finfun: Mapped[str] = mapped_column(Text, primary_key=True)
...@@ -31,6 +32,7 @@ class FinfunEstado(Base): ...@@ -31,6 +32,7 @@ class FinfunEstado(Base):
31 Index("idx_finfun_estado_gestion", "gestion"), 32 Index("idx_finfun_estado_gestion", "gestion"),
32 Index("idx_finfun_estado_finfun", "finfun"), 33 Index("idx_finfun_estado_finfun", "finfun"),
33 Index("idx_finfun_estado_finfun_gestion", "finfun", "gestion"), 34 Index("idx_finfun_estado_finfun_gestion", "finfun", "gestion"),
35 + {"schema": "web"},
34 ) 36 )
35 37
36 id: Mapped[int] = mapped_column(Integer, primary_key=True, autoincrement=True) 38 id: Mapped[int] = mapped_column(Integer, primary_key=True, autoincrement=True)
...@@ -69,6 +71,7 @@ class FinfunEntidad(Base): ...@@ -69,6 +71,7 @@ class FinfunEntidad(Base):
69 Index("idx_finfun_entidad_gestion", "gestion"), 71 Index("idx_finfun_entidad_gestion", "gestion"),
70 Index("idx_finfun_entidad_finfun", "finfun"), 72 Index("idx_finfun_entidad_finfun", "finfun"),
71 Index("idx_finfun_entidad_finfun_entidad", "finfun", "entidad"), 73 Index("idx_finfun_entidad_finfun_entidad", "finfun", "entidad"),
74 + {"schema": "web"},
72 ) 75 )
73 76
74 id: Mapped[int] = mapped_column(Integer, primary_key=True, autoincrement=True) 77 id: Mapped[int] = mapped_column(Integer, primary_key=True, autoincrement=True)
......
...@@ -16,6 +16,7 @@ class EntidadesPorObjeto(Base): ...@@ -16,6 +16,7 @@ class EntidadesPorObjeto(Base):
16 __table_args__ = ( 16 __table_args__ = (
17 Index("idx_entidades_por_objeto_objeto", "objeto"), 17 Index("idx_entidades_por_objeto_objeto", "objeto"),
18 Index("idx_entidades_por_objeto_objeto_nivel", "objeto", "nivel"), 18 Index("idx_entidades_por_objeto_objeto_nivel", "objeto", "nivel"),
19 + {"schema": "web"},
19 ) 20 )
20 21
21 entidad: Mapped[int] = mapped_column(Integer, primary_key=True) 22 entidad: Mapped[int] = mapped_column(Integer, primary_key=True)
...@@ -31,6 +32,7 @@ class ObjetoEstado(Base): ...@@ -31,6 +32,7 @@ class ObjetoEstado(Base):
31 Index("idx_objeto_estado_gestion", "gestion"), 32 Index("idx_objeto_estado_gestion", "gestion"),
32 Index("idx_objeto_estado_objeto", "objeto"), 33 Index("idx_objeto_estado_objeto", "objeto"),
33 Index("idx_objeto_estado_objeto_gestion", "objeto", "gestion"), 34 Index("idx_objeto_estado_objeto_gestion", "objeto", "gestion"),
35 + {"schema": "web"},
34 ) 36 )
35 37
36 id: Mapped[int] = mapped_column(Integer, primary_key=True, autoincrement=True) 38 id: Mapped[int] = mapped_column(Integer, primary_key=True, autoincrement=True)
...@@ -70,6 +72,7 @@ class ObjetoEntidad(Base): ...@@ -70,6 +72,7 @@ class ObjetoEntidad(Base):
70 Index("idx_objeto_entidad_gestion", "gestion"), 72 Index("idx_objeto_entidad_gestion", "gestion"),
71 Index("idx_objeto_entidad_objeto", "objeto"), 73 Index("idx_objeto_entidad_objeto", "objeto"),
72 Index("idx_objeto_entidad_objeto_entidad", "objeto", "entidad"), 74 Index("idx_objeto_entidad_objeto_entidad", "objeto", "entidad"),
75 + {"schema": "web"},
73 ) 76 )
74 77
75 id: Mapped[int] = mapped_column(Integer, primary_key=True, autoincrement=True) 78 id: Mapped[int] = mapped_column(Integer, primary_key=True, autoincrement=True)
......
...@@ -16,6 +16,7 @@ class TreemapObjeto(Base): ...@@ -16,6 +16,7 @@ class TreemapObjeto(Base):
16 __table_args__ = ( 16 __table_args__ = (
17 Index("idx_treemap_objeto_gestion_entidad", "gestion", "entidad"), 17 Index("idx_treemap_objeto_gestion_entidad", "gestion", "entidad"),
18 Index("idx_treemap_objeto_nivel", "nivel"), 18 Index("idx_treemap_objeto_nivel", "nivel"),
19 + {"schema": "web"},
19 ) 20 )
20 21
21 # PK compuesta inferida para uso ORM 22 # PK compuesta inferida para uso ORM
...@@ -36,6 +37,7 @@ class TreemapFinFun(Base): ...@@ -36,6 +37,7 @@ class TreemapFinFun(Base):
36 __table_args__ = ( 37 __table_args__ = (
37 Index("idx_treemap_finfun_gestion_entidad", "gestion", "entidad"), 38 Index("idx_treemap_finfun_gestion_entidad", "gestion", "entidad"),
38 Index("idx_treemap_finfun_nivel", "nivel"), 39 Index("idx_treemap_finfun_nivel", "nivel"),
40 + {"schema": "web"},
39 ) 41 )
40 42
41 # PK compuesta inferida para uso ORM 43 # PK compuesta inferida para uso ORM
...@@ -56,6 +58,7 @@ class TreemapActeco(Base): ...@@ -56,6 +58,7 @@ class TreemapActeco(Base):
56 __table_args__ = ( 58 __table_args__ = (
57 Index("idx_treemap_acteco_gestion_entidad", "gestion", "entidad"), 59 Index("idx_treemap_acteco_gestion_entidad", "gestion", "entidad"),
58 Index("idx_treemap_acteco_nivel", "nivel"), 60 Index("idx_treemap_acteco_nivel", "nivel"),
61 + {"schema": "web"},
59 ) 62 )
60 63
61 # PK compuesta inferida para uso ORM 64 # PK compuesta inferida para uso ORM
......
...@@ -12,8 +12,8 @@ from aiocache import cached ...@@ -12,8 +12,8 @@ from aiocache import cached
12 12
13 13
14 router = APIRouter( 14 router = APIRouter(
15 - prefix='/entidad', 15 + prefix='/entidad',
16 - tags=['entidad'], 16 + tags=['entidad'],
17 ) 17 )
18 18
19 19
...@@ -21,49 +21,49 @@ router = APIRouter( ...@@ -21,49 +21,49 @@ router = APIRouter(
21 # GET 21 # GET
22 ############################################################################### 22 ###############################################################################
23 23
24 -@router.get('/{entity_id}', response_model=schemas.classifier.ClasInstitucional) 24 +@router.get('/{entity_id:int}', response_model=schemas.classifier.ClasInstitucional)
25 def fetch_entity( 25 def fetch_entity(
26 - entity_id: int, 26 + entity_id: int,
27 - db: Session = Depends(model.get_db), 27 + db: Session = Depends(model.get_db),
28 ): 28 ):
29 ClasInstitucional = models.classifier.ClasInstitucional 29 ClasInstitucional = models.classifier.ClasInstitucional
30 - return db.query(ClasInstitucional).filter( 30 + return db.query(ClasInstitucional).filter(
31 - ClasInstitucional.entidad == entity_id 31 + ClasInstitucional.entidad == entity_id
32 - ).one() 32 + ).one()
33 33
34 34
35 @router.get('/clasificador', response_model=List[schemas.classifier.ClasInstitucional]) 35 @router.get('/clasificador', response_model=List[schemas.classifier.ClasInstitucional])
36 def fetch_classifier( 36 def fetch_classifier(
37 - db: Session = Depends(model.get_db), 37 + db: Session = Depends(model.get_db),
38 ): 38 ):
39 return db.query(models.classifier.ClasInstitucional).all() 39 return db.query(models.classifier.ClasInstitucional).all()
40 40
41 41
42 -@router.get('/{entity_id}/objetos', response_model=List[schemas.treemap.TreemapObjeto]) 42 +@router.get('/{entity_id:int}/objetos', response_model=List[schemas.treemap.TreemapObjeto])
43 -def fetch_entity( 43 +def fetch_entity_objetos(
44 - entity_id: int, 44 + entity_id: int,
45 - db: Session = Depends(model.get_db), 45 + db: Session = Depends(model.get_db),
46 - query: schema.QueryParams = Depends(), 46 + query: schema.QueryParams = Depends(),
47 ): 47 ):
48 TreemapObjeto = models.treemap.TreemapObjeto 48 TreemapObjeto = models.treemap.TreemapObjeto
49 return get_entity_connections(entity_id, db, query, TreemapObjeto, 'objeto') 49 return get_entity_connections(entity_id, db, query, TreemapObjeto, 'objeto')
50 50
51 51
52 -router.get('/{entity_id}/finfuns', response_model=List[schemas.treemap.TreemapFinfun]) 52 +router.get('/{entity_id:int}/finfuns', response_model=List[schemas.treemap.TreemapFinFun])
53 -def fetch_entity( 53 +def fetch_entity_finfuns(
54 - entity_id: int, 54 + entity_id: int,
55 - db: Session = Depends(model.get_db), 55 + db: Session = Depends(model.get_db),
56 - query: schema.QueryParams = Depends(), 56 + query: schema.QueryParams = Depends(),
57 ): 57 ):
58 TreemapFinFun = models.treemap.TreemapFinFun 58 TreemapFinFun = models.treemap.TreemapFinFun
59 return get_entity_connections(entity_id, db, query, TreemapFinFun, 'finfun') 59 return get_entity_connections(entity_id, db, query, TreemapFinFun, 'finfun')
60 60
61 61
62 -@router.get('/{entity_id}/actecos', response_model=List[schemas.treemap.TreemapActeco]) 62 +@router.get('/{entity_id:int}/actecos', response_model=List[schemas.treemap.TreemapActeco])
63 -def fetch_entity( 63 +def fetch_entity_actecos(
64 - entity_id: int, 64 + entity_id: int,
65 - db: Session = Depends(model.get_db), 65 + db: Session = Depends(model.get_db),
66 - query: schema.QueryParams = Depends(), 66 + query: schema.QueryParams = Depends(),
67 ): 67 ):
68 TreemapActeco = models.treemap.TreemapActeco 68 TreemapActeco = models.treemap.TreemapActeco
69 return get_entity_connections(entity_id, db, query, TreemapActeco, 'acteco') 69 return get_entity_connections(entity_id, db, query, TreemapActeco, 'acteco')
...@@ -82,6 +82,8 @@ def get_entity_connections(entity_id, db, query, ClassObject, object_id): ...@@ -82,6 +82,8 @@ def get_entity_connections(entity_id, db, query, ClassObject, object_id):
82 ClassObject.gestion == query.gestion, 82 ClassObject.gestion == query.gestion,
83 ] 83 ]
84 84
85 + print(query.id is not None)
86 +
85 if query.id is not None: 87 if query.id is not None:
86 ids = query.id.split(',') 88 ids = query.id.split(',')
87 ids = [int(_.strip()) for _ in ids] 89 ids = [int(_.strip()) for _ in ids]
......
...@@ -33,10 +33,10 @@ router = APIRouter( ...@@ -33,10 +33,10 @@ router = APIRouter(
33 def fetch_search( 33 def fetch_search(
34 query: schema.SearchQueryParams = Depends(), 34 query: schema.SearchQueryParams = Depends(),
35 ): 35 ):
36 - if query.q is None or len(query.q) < 3: 36 + if query.q is None or len(query.q.strip()) < 3:
37 return [] 37 return []
38 38
39 - return do_search(query.q, query.page) 39 + return do_search(query.q, query.page, query.is_class)
40 40
41 41
42 ############################################################################### 42 ###############################################################################
...@@ -44,5 +44,5 @@ def fetch_search( ...@@ -44,5 +44,5 @@ def fetch_search(
44 ############################################################################### 44 ###############################################################################
45 45
46 # @cached(ttl=10) 46 # @cached(ttl=10)
47 -def do_search(query, page):
48 - return search.do_search(query, page)
...\ No newline at end of file ...\ No newline at end of file
47 +def do_search(query, page, is_class):
48 + return search.do_search(query, page, is_class)
...\ No newline at end of file ...\ No newline at end of file
......
...@@ -12,6 +12,7 @@ class OrmBaseModel(BaseModel): ...@@ -12,6 +12,7 @@ class OrmBaseModel(BaseModel):
12 class SearchQueryParams(BaseModel): 12 class SearchQueryParams(BaseModel):
13 page: Optional[int] = Query(default=1) 13 page: Optional[int] = Query(default=1)
14 q: Optional[str] = Query(default=None) 14 q: Optional[str] = Query(default=None)
15 + is_class: Optional[bool] = Query(default=None)
15 16
16 class QueryParams(BaseModel): 17 class QueryParams(BaseModel):
17 id: Optional[str] = Query(default=None) 18 id: Optional[str] = Query(default=None)
......
...@@ -7,18 +7,23 @@ class ClasInstitucional(OrmBaseModel): ...@@ -7,18 +7,23 @@ class ClasInstitucional(OrmBaseModel):
7 entidad: int 7 entidad: int
8 desc_entidad: str | None 8 desc_entidad: str | None
9 sigla_entidad: str | None 9 sigla_entidad: str | None
10 +
10 sector: str | None 11 sector: str | None
11 desc_sector: str | None 12 desc_sector: str | None
12 sigla_sector: str | None 13 sigla_sector: str | None
14 +
13 subsector: str | None 15 subsector: str | None
14 desc_subsector: str | None 16 desc_subsector: str | None
15 sigla_subsector: str | None 17 sigla_subsector: str | None
18 +
16 area: str | None 19 area: str | None
17 desc_area: str | None 20 desc_area: str | None
18 sigla_area: str | None 21 sigla_area: str | None
22 +
19 subarea: str | None 23 subarea: str | None
20 desc_subarea: str | None 24 desc_subarea: str | None
21 sigla_subarea: str | None 25 sigla_subarea: str | None
26 +
22 gestiones: str | None 27 gestiones: str | None
23 n_gestiones: int | None 28 n_gestiones: int | None
24 29
......
...@@ -5,13 +5,10 @@ from presupuestov1.schema import BaseModel ...@@ -5,13 +5,10 @@ from presupuestov1.schema import BaseModel
5 5
6 class ProjectSearch(BaseModel): 6 class ProjectSearch(BaseModel):
7 gestion: int 7 gestion: int
8 - entidad: int
9 - programa: int
10 - proyecto: str
11 - actividad: int
12 - desc_programa: str
13 - desc_actividad_proyecto: str
14 devengado: float 8 devengado: float
9 + is_class: bool
10 + texto: str
11 + metadatos: str
15 12
16 13
17 class SearchHitHighlight(BaseModel): 14 class SearchHitHighlight(BaseModel):
......
...@@ -4,8 +4,8 @@ from presupuestov1.schema import OrmBaseModel ...@@ -4,8 +4,8 @@ from presupuestov1.schema import OrmBaseModel
4 class TreemapObjeto(OrmBaseModel): 4 class TreemapObjeto(OrmBaseModel):
5 gestion: int 5 gestion: int
6 entidad: int 6 entidad: int
7 - nivel: str
8 objeto: int 7 objeto: int
8 + nivel: str | None
9 desc_objeto: str | None 9 desc_objeto: str | None
10 parent: int | None 10 parent: int | None
11 devengado: float | None 11 devengado: float | None
...@@ -14,8 +14,8 @@ class TreemapObjeto(OrmBaseModel): ...@@ -14,8 +14,8 @@ class TreemapObjeto(OrmBaseModel):
14 class TreemapFinFun(OrmBaseModel): 14 class TreemapFinFun(OrmBaseModel):
15 gestion: int 15 gestion: int
16 entidad: int 16 entidad: int
17 - nivel: str
18 finfun: int 17 finfun: int
18 + nivel: str | None
19 desc_finfun: str | None 19 desc_finfun: str | None
20 parent: int | None 20 parent: int | None
21 devengado: float | None 21 devengado: float | None
...@@ -24,8 +24,8 @@ class TreemapFinFun(OrmBaseModel): ...@@ -24,8 +24,8 @@ class TreemapFinFun(OrmBaseModel):
24 class TreemapActeco(OrmBaseModel): 24 class TreemapActeco(OrmBaseModel):
25 gestion: int 25 gestion: int
26 entidad: int 26 entidad: int
27 - nivel: str
28 acteco: int 27 acteco: int
28 + nivel: str | None
29 desc_actividad: str | None 29 desc_actividad: str | None
30 parent: int | None 30 parent: int | None
31 devengado: float | None 31 devengado: float | None
......
...@@ -2,45 +2,51 @@ import typesense ...@@ -2,45 +2,51 @@ import typesense
2 2
3 TYPESENSE_API = open('./docs/typesense').read().strip() 3 TYPESENSE_API = open('./docs/typesense').read().strip()
4 client = typesense.Client({ 4 client = typesense.Client({
5 - 'api_key': TYPESENSE_API, 5 + 'api_key': TYPESENSE_API,
6 - 'nodes': [{ 6 + 'nodes': [{
7 - 'host': 'localhost', 7 + 'host': 'localhost',
8 - 'port': '8108', 8 + 'port': '8108',
9 - 'protocol': 'http' 9 + 'protocol': 'http'
10 - }], 10 + }],
11 - 'connection_timeout_seconds': 2 11 + 'connection_timeout_seconds': 2
12 }) 12 })
13 13
14 COLLECTION = 'presup_actpro_fts' 14 COLLECTION = 'presup_actpro_fts'
15 schema = { 15 schema = {
16 - 'name': COLLECTION, 16 + 'name': COLLECTION,
17 - 'fields': [ 17 + 'fields': [
18 - {'name': 'index', 'type': 'int32'},
19 {'name': 'gestion', 'type': 'int32', 'facet': True}, 18 {'name': 'gestion', 'type': 'int32', 'facet': True},
20 - {'name': 'entidad', 'type': 'int32',},
21 - {'name': 'programa', 'type': 'int32',},
22 - {'name': 'proyecto', 'type': 'string',},
23 - {'name': 'actividad', 'type': 'int32',},
24 - {'name': 'desc_actividad_proyecto', 'type': 'string'},
25 {'name': 'devengado', 'type': 'float'}, 19 {'name': 'devengado', 'type': 'float'},
26 - ], 20 + {'name': 'is_class', 'type': 'bool'},
27 - 'default_sorting_field': 'devengado', 21 + {'name': 'texto', 'type': 'string'},
22 + {'name': 'metadatos', 'type': 'string'},
23 + ],
24 + 'default_sorting_field': 'devengado',
28 } 25 }
29 26
30 search_parameters = { 27 search_parameters = {
31 - "q": "cuba", 28 + "q": "cuba",
32 - "query_by": "desc_actividad_proyecto,desc_programa", 29 + "query_by": "texto",
33 - "facet_by": "gestion", 30 + # "facet_by": "gestion",
34 - "sort_by": "devengado:desc", 31 + "sort_by": "devengado:desc",
35 - "per_page": 20, 32 + "per_page": 20,
36 } 33 }
37 34
38 35
39 36
40 -def do_search(query, page): 37 +def do_search(query, page, is_class):
41 search_parameters_ = search_parameters.copy() 38 search_parameters_ = search_parameters.copy()
42 search_parameters_['q'] = query 39 search_parameters_['q'] = query
43 40
41 + if is_class is not None:
42 + filter_c = ''
43 + if is_class:
44 + filter_c = 'is_class:true'
45 + else:
46 + filter_c = 'is_class:false'
47 +
48 + search_parameters_['filter_by'] = filter_c
49 +
44 if (page is not None) and (page > 0): 50 if (page is not None) and (page > 0):
45 search_parameters_['page'] = page 51 search_parameters_['page'] = page
46 52
......