1. 02 Oct, 2019 6 commits
  2. 01 Oct, 2019 2 commits
  3. 02 Oct, 2019 1 commit
  4. 19 Sep, 2019 1 commit
  5. 27 Jun, 2019 1 commit
  6. 26 Jun, 2019 3 commits
  7. 02 May, 2019 3 commits
    • Denis Laxalde's avatar
      Added tag 0.17.0 for changeset 0a565615f0d5 · c339778239a5
      Denis Laxalde authored
      c339778239a5
    • Denis Laxalde's avatar
      [pkg] Version 0.17.0 · 0a565615f0d5
      Denis Laxalde authored
      0a565615f0d5
    • Denis Laxalde's avatar
      [profile gen] Account for bdo's user cardinality or its parent's in... · fcb890e6d9d7
      Denis Laxalde authored
      [profile gen] Account for bdo's user cardinality or its parent's in "Integrity" element (CONSEJIRA-663)
      
      See also https://jira.mtpl.bs.fr.atos.net/browse/CONSEJIRA-663
      
      For more details, quoting verbatim the customer request for future reference:
      
      | Sur les documents multi occurrences (0-n ou 1-n) ou même si l’archive
      | est multi occurrence (0-n ou 1-n), il y a une balise integrity qui est
      | liée au document dans le bordereau de versement que l’on génère.
      | Or, dans le XSD du profil, la balise integrity du document ne possède
      | pas l'attribut : maxOccurs="unbounded"
      | Donc lors de l'envoi à Asalae du versement, Asalae fait une vérification
      | par rapport au profil et affiche une erreur a cause de la balise
      | integrity qui est présente plusieurs fois.
      |
      | Pour moi le correctif à faire doit porter sur le XSD et le RNG sur la
      | balise integrity pour qu'elle soit multi-occurrence possible dans les cas
      | suivants :
      |
      |   *   Si le document (Document) est en multi occurrence (0-n ou 1-n)
      |       donc avec un attribut maxOccurs="unbounded"
      |   *   Si une UA (Contains) supérieure au document est en multi
      |       occurrence (0-n ou 1-n) donc avec un attribut
      |       maxOccurs="unbounded"
      
      | si une UA supérieur est en cardinalité max unbounded, alors
      | l'integrity sur les documents en dessous doit forcément être en
      | unbounded également
      
      | il faut que l'integrity soit en facultative ou multi occurrence si une
      | UA supérieure est facultative ou en multi occurrence.
      
      This is essentially achieved by looking for the upper parent archive
      units of a data object then their cardinality to produce the Integrity element.
      
      Adding tests for new integrity_cardinality() function based on customer
      examples.
      fcb890e6d9d7
  8. 23 Apr, 2019 1 commit
    • Denis Laxalde's avatar
      [test] Specify bdo's user_cardinality in test_seda_0_2_bordereau_ref · 1fe87336af7c
      Denis Laxalde authored
      In the next changeset, binary data object's user_cardinality will be
      accounted for when inserting the "Integrity" element in profile whereas
      it is currently hard-coded to "0..1" (see xsd_integrity() method of
      SEDA1XSDExport and SEDA02XSDExport classes). In order to prevent changes
      to generated profile with respect to the "seda_02_bordereau_ref.xml"
      file, we set the value of user_cardinality created bdo in this test.
      1fe87336af7c
  9. 26 Apr, 2019 1 commit
  10. 24 Apr, 2019 1 commit
  11. 08 Mar, 2019 3 commits
  12. 20 Dec, 2018 2 commits
  13. 14 Dec, 2018 2 commits
    • Denis Laxalde's avatar
      [hooks] Delete binary DO when deleting an archive unit not related to a profile · 30e67f4f9e29
      Denis Laxalde authored
      We extend the logic of "seda.doref.del" hook so that it not only handles
      the case of "simplified profile" but also the case of archive unit not
      related to a profile. In the later case, we check that the container of
      "SEDABinaryDataObject" is really a "SEDAArchiveUnit" (not sure what else
      it could be) and trigger the operation deleting the binary data-object
      when its parent object reference (SEDADataObjectReference entity) is
      deleted.
      
      Accordingly, we rename hook and operation classes and update their
      docstring.
      
      This resolves CONSEJIRA-643 but making deletion of an archive unit
      containing a binary data object but not related to profile. New test
      goes into test_schema.py below other tests related to the hook we
      modified.
      30e67f4f9e29
    • Denis Laxalde's avatar
      Refactor conditional logic in SimplifiedProfileDelRefROHook a bit · 049322b9d8ee
      Denis Laxalde authored
      This is a preparatory refactoring to ease introduction of a functional
      change in the next changeset.
      049322b9d8ee
  14. 29 Nov, 2018 3 commits
    • Denis Laxalde's avatar
      Added tag 0.15.1 for changeset c44cc9226387 · 181f83e6b545
      Denis Laxalde authored
      181f83e6b545
    • Denis Laxalde's avatar
      [pkg] Version 0.15.1 · c44cc9226387
      Denis Laxalde authored
      c44cc9226387
    • Denis Laxalde's avatar
      Make "seda.tree" component selectable for all items of the SEDA tree · 820fbe858027
      Denis Laxalde authored
      This follows-up on changeset 0b663b4c509f which made
      ProfileTreeComponent class abstract and introduced a regression in that
      the component was then only selectable for SEDAArchiveTransfer entities,
      hence making the tree component disappear when navigating to leafs of
      the tree.
      
      A concrete class of this component must exist for all possible entity
      types under a SEDAArchiveTransfer entity. We thus extend the selector of
      TransferTreeComponent (renamed as ProfileTreeComponent) to list all
      entity types. Accordingly, we make it clearer that the base class is
      abstract by renameing it.
      820fbe858027
  15. 29 Oct, 2018 4 commits
  16. 19 Oct, 2018 1 commit
    • Denis Laxalde's avatar
      Delete "container" relation on archive unit when unlinked from a profile · 359177d6a1c8
      Denis Laxalde authored
      - Container machinery got introduced in 143ae7a4a964, at that time the
        "container" relation was mandatory (on subject) for all entity types.
      - Integrity of this relation relied on the assumption that the relation
        was mandatory. (I.e. all entities mush have a link to their container
        and the only way to remove this link is to remove the container entity
        itself).
      - In a88deb387b2b, this assumption got broken as "container" relation
        was made optional for SEDAArchiveUnit as a subject. From there, when
        an archive unit got unlinked from a profile (through deletion of the
        "seda_archive_unit" relation), a "container" relation remained set.
      - This is problem since permission (especially on "delete" action)
        relies on the presence or absence of this relation. For instance,
        one would get an error when trying to delete an archive unit they just
        unlinked from a profile because they have no rights to delete the
        profile.
      
      So we fix this by dropping the "container" relation when a
      "seda_archive_unit" relation is deleted through a new hook.
      
      Additional test goes in test_entities.py as other container-related
      tests live there.
      
      In migration, we drop spurious "container" relation (not sure there are
      some).
      359177d6a1c8
  17. 09 Oct, 2018 2 commits
  18. 01 Oct, 2018 1 commit
    • Frank Bessou's avatar
      Import cubicweb_skos instead of cubes.skos · 9e6614f4159d
      Frank Bessou authored
      When both cubes.skos and cubicweb_skos are used to import the same
      module, appobjects are registered using the wrong objid.
      
      This is particularly problematic in register_and_replace function of
      registries which relies on the objid of appobjects to find which object
      to replace.
      9e6614f4159d
  19. 27 Sep, 2018 2 commits
    • Frank Bessou's avatar
      Make ProfileTreeComponent abstract · 0b663b4c509f
      Frank Bessou authored
      We make ProfileTreeComponent abstract to avoid selecting it for any
      entity that can be adapted to ITreeBase. Indeed, we don't want Concepts
      to be rendered as contextual components in cube saem.
      
      We then create a TransferTreeComponent extending ProfileTreeComponent
      the same way we made the UnitTreeComponent.
      0b663b4c509f
    • Frank Bessou's avatar
      Make the component_unit predicate work with non seda entities · 4f0b259e419e
      Frank Bessou authored
      In the component_unit predicate, we handle the case where
      _seda_container_from_context returns None by returning 0.
      This can be the case when the predicate is called with a non seda
      entity.
      4f0b259e419e