*** Settings ***
Resource  resources/resources.robot
Suite Setup  For Suite Setup
Suite Teardown  For Suite Teardown
Documentation  Reprise sur abandon - Le widget des reprises sur abandon affiche le
...  nombre de reprises sur abandon en fonction du paramétrage du widget.
...  Au clique sur le nombre de résultat, l'utilisateur
...  est redirigé dans le listing général des reprises sur abandon avec les
...  filtres pré-sélectionnés

*** Test Cases ***
Constitution du jeu de données
    [Documentation]  Creation du jeu de donnée

    ${testid} =  Set Variable  142
    Set Suite Variable  ${testid}

    Depuis la page d'accueil  admin  admin

    &{cimetiere01} =  Create Dictionary
    ...  cimetierelib=ENITSELAP${testid}
    ...  adresse1=EERF ENITSELAP${testid}
    ...  adresse2=
    ...  cp=81680085
    ...  ville=LIBREVILLE
    ...  observations=
    Ajouter le cimetière  ${cimetiere01}
    Set Suite Variable  ${cimetiere01}

    &{zone01_cim01} =  Create Dictionary
    ...  cimetiere=${cimetiere01.cimetierelib}
    ...  zonetype=CARRE
    ...  zonelib=81680085${testid}
    Ajouter la zone  ${zone01_cim01}
    Set Suite Variable  ${zone01_cim01}

    &{voie01_zone01_cim01} =  Create Dictionary
    ...  zone=${zone01_cim01.zonetype} ${zone01_cim01.zonelib} (${zone01_cim01.cimetiere})
    ...  voietype=ALLEE
    ...  voielib=81680085${testid}
    Ajouter la voie  ${voie01_zone01_cim01}
    Set Suite Variable  ${voie01_zone01_cim01}

    &{type_de_sepulture_01} =  Create Dictionary
    ...  code=81680085${testid}
    ...  libelle=Type de sépulture 81680085${testid}
    ${type_de_sepulture_01.id} =  Ajouter le *type de sépulture*  ${type_de_sepulture_01}
    Set Suite Variable  ${type_de_sepulture_01}

    # On ajoute une concession
    &{concession01} =  Create Dictionary
    ...  famille=SUPASAYANJIN${testid}
    ...  numero=81680085
    ...  cimetierelib=${cimetiere01.cimetierelib}
    ...  zonelib=${zone01_cim01.zonetype} ${zone01_cim01.zonelib}
    ...  voielib=${voie01_zone01_cim01.voietype} ${voie01_zone01_cim01.voielib}
    ...  sepulturetype=${type_de_sepulture_01.libelle}
    ${concession01.id} =  Ajouter la concession  ${concession01}
    Set Suite Variable  ${concession01}

    ${date_future} =  Add Time To Date  ${DATE_FORMAT_YYYY-MM-DD}  365 days  result_format=%Y-%m-%d
    ${date_future_formated} =  Convert Date  ${date_future}  result_format=%d/%m/%Y

    &{reprise_abandon} =  Create Dictionary
    ...  statut=En cours
    ...  etat=1 - Phase préliminaire
    ...  datecreation=${date_future_formated}
    ...  dateconvocationvisite1=28/05/2024
    ...  dateconstatpv1=28/05/2024
    ...  descriptionpv1=NON
    ...  personnepresentepv1=BIBI
    ...  datenotificationpv1=28/05/2024
    ...  debutaffichage1pv1=28/05/2024
    ...  finaffichage1pv1=28/05/2024
    ...  debutaffichage2pv1=28/05/2024
    ...  finaffichage2pv1=28/05/2024
    ...  debutaffichage3pv1=28/05/2024
    ...  finaffichage3pv1=28/05/2024
    ...  dateconvocationvisite2=28/05/2024
    ...  dateconstatpv2=28/05/2024
    ...  descriptionpv2=NON
    ...  personnepresentepv2=BIBI
    ...  datenotificationpv2=28/05/2024
    ...  debutaffichagepv2=28/05/2024
    ...  finaffichagepv2=28/05/2024
    ...  arrete=p-concession-1.jpg
    ${reprise_abandon.id} =  Ajouter une reprise sur abandon  ${reprise_abandon}  ${concession01.id}
    Set Suite Variable  ${reprise_abandon}

Vérification du bon fonctionnement du widget des reprises sur abandon
    [Documentation]  Permet de vérifier que le widget des reprises sur abandon fonctionne
    ...  et que les filtres sont bien appliqués

    # On ajoute un widget et on l'ajoute au dashboard
    &{widget01}=  Create Dictionary
    ...  libelle=Reprise Sur Abandon | RESULTAT 0
    ...  type=file - le contenu du widget provient d'un script sur le serveur
    ...  script=reprise_sur_abandon
    ...  arguments=datecreation_max=today -1 day
    ${widget01.id} =  Ajouter un widget  ${widget01}

    Ajouter le widget au tableau de bord  ADMINISTRATEUR  Reprise Sur Abandon | RESULTAT 0
    Go To Dashboard
    Wait Until Keyword Succeeds  ${TIMEOUT}  ${RETRY_INTERVAL}  Element Should Contain  css=.size-h3.box-icon.bg-default  0
    # On verifie que le listing affiche bien un resultat logique
    Click Element  css=.size-h3.box-icon.bg-default
    Page Should Contain  Aucun enregistrement.
    # On supprime le widget du tableau de bord
    Supprimer un widget depuis le tableau de bord  ADMINISTRATEUR  ${widget01.id}

    # On verifie le bon fonctionnement du filtre
    &{widget02}=  Create Dictionary
    ...  libelle=Reprise Sur Abandon | RESULTAT 1
    ...  type=file - le contenu du widget provient d'un script sur le serveur
    ...  script=reprise_sur_abandon
    ...  arguments=datecreation_min=today + 365 days\ndatecreation_max=today + 365 days
    ${widget02.id} =  Ajouter un widget  ${widget02}
    Ajouter le widget au tableau de bord  ADMINISTRATEUR  Reprise Sur Abandon | RESULTAT 1
    Go To Dashboard
    Element Should Contain  css=#widget_9 .size-h3.box-icon.bg-default  1
    Click Element  css=#widget_9 .size-h3.box-icon.bg-default
    Page Should Contain  concession - n°${concession01.id} - Famille : ${concession01.famille}
    # On supprime le widget
    Supprimer un widget depuis le tableau de bord  ADMINISTRATEUR  ${widget02.id}
    Supprimer un widget  ${widget02.id}
    Go To Dashboard
    Page Should Not Contain  css=#widget_9 .size-h3.box-icon.bg-default