|
@@ -364,35 +364,43 @@ class ContentApi(object):
|
364
|
364
|
|
365
|
365
|
return self._base_query(workspace).filter(Content.content_id==content_id).filter(Content.type==content_type).one()
|
366
|
366
|
|
367
|
|
- # TODO : temporary code for webdav support; make it clean !
|
368
|
367
|
def get_one_revision(self, revision_id: int = None) -> Content:
|
|
368
|
+ """
|
|
369
|
+ This method allow us to get directly any revision with its id
|
|
370
|
+ :param revision_id: The content's revision's id that we want to return
|
|
371
|
+ :return: An item Content linked with the correct revision
|
|
372
|
+ """
|
|
373
|
+ assert revision_id is not None# DYN_REMOVE
|
369
|
374
|
|
370
|
|
- return DBSession.query(ContentRevisionRO).filter(ContentRevisionRO.revision_id == revision_id).one_or_none()
|
371
|
|
-
|
372
|
|
- def get_one_revision2(self, revision_id: int = None):
|
373
|
|
- ro = self.get_one_revision(revision_id)
|
|
375
|
+ revision = DBSession.query(ContentRevisionRO).filter(ContentRevisionRO.revision_id == revision_id)
|
|
376
|
+
|
|
377
|
+ result = self._base_query(None)
|
374
|
378
|
|
375
|
|
- return DBSession.query(Content).filter(Content.id == ro.content_id).one()
|
|
379
|
+ return result.filter(Content.revision_id == revision_id).one()
|
376
|
380
|
|
377
|
381
|
def get_one_by_label_and_parent(self, content_label: str, content_parent: Content = None,
|
378
|
382
|
workspace: Workspace = None) -> Content:
|
|
383
|
+ """
|
|
384
|
+ This method let us request the database to obtain a Content with its name and parent
|
|
385
|
+ :param content_label: Either the content's label or the content's filename if the label is None
|
|
386
|
+ :param content_parent: The parent's content
|
|
387
|
+ :param workspace: The workspace's content
|
|
388
|
+ :return The corresponding Content
|
|
389
|
+ """
|
|
390
|
+ assert content_label is not None# DYN_REMOVE
|
379
|
391
|
|
380
|
|
- if not content_label:
|
381
|
|
- return None
|
382
|
|
-
|
383
|
|
- query = self._base_query(workspace)
|
|
392
|
+ resultset = self._base_query(workspace)
|
384
|
393
|
|
385
|
394
|
parent_id = content_parent.content_id if content_parent else None
|
386
|
395
|
|
387
|
|
- query = query.filter(Content.parent_id == parent_id)
|
388
|
|
-
|
389
|
|
- res = query.filter(Content.label == content_label).one_or_none()
|
390
|
|
-
|
391
|
|
- return res if res is not None else query.filter(Content.file_name==content_label).one_or_none()
|
|
396
|
+ resultset = resultset.filter(Content.parent_id == parent_id)
|
392
|
397
|
|
393
|
|
- # TODO : end of the webdav's code
|
|
398
|
+ try:
|
|
399
|
+ return resultset.filter(Content.label == content_label).one()
|
|
400
|
+ except:
|
|
401
|
+ return resultset.filter(Content.file_name == content_label).one()
|
394
|
402
|
|
395
|
|
- def get_all(self, parent_id: int, content_type: str, workspace: Workspace=None) -> Content:
|
|
403
|
+ def get_all(self, parent_id: int, content_type: str, workspace: Workspace=None) -> [Content]:
|
396
|
404
|
assert parent_id is None or isinstance(parent_id, int) # DYN_REMOVE
|
397
|
405
|
assert content_type is not None# DYN_REMOVE
|
398
|
406
|
assert isinstance(content_type, str) # DYN_REMOVE
|
|
@@ -402,8 +410,17 @@ class ContentApi(object):
|
402
|
410
|
if content_type!=ContentType.Any:
|
403
|
411
|
resultset = resultset.filter(Content.type==content_type)
|
404
|
412
|
|
405
|
|
- if parent_id:
|
406
|
|
- resultset = resultset.filter(Content.parent_id==parent_id)
|
|
413
|
+ resultset = resultset.filter(Content.parent_id==parent_id)
|
|
414
|
+
|
|
415
|
+ return resultset.all()
|
|
416
|
+
|
|
417
|
+ def get_all_without_exception(self, content_type: str) -> [Content]:
|
|
418
|
+ assert content_type is not None# DYN_REMOVE
|
|
419
|
+
|
|
420
|
+ resultset = self._base_query(None)
|
|
421
|
+
|
|
422
|
+ if content_type != ContentType.Any:
|
|
423
|
+ resultset = resultset.filter(Content.type==content_type)
|
407
|
424
|
|
408
|
425
|
return resultset.all()
|
409
|
426
|
|