Project

General

Profile

Development #65248

L'opérateur sur le statut (= ou !=) ne semble pas géré au niveau de CustomView

Added by Benjamin Dauvergne 15 days ago. Updated 12 days ago.

Status:
Solution déployée
Priority:
Normal
Target version:
-
Start date:
14 May 2022
Due date:
% Done:

0%

Estimated time:
Patch proposed:
Yes
Planning:
No

Description

Cf. ticket client #64979, le client essaye d'utiliser l'opérateur '!=' avec le choix d'un statut comme critère de filtrage, ce qui marche dans l'immédiat, mais dès qu'on sauvegarde ce paramétrage dans une vue personnalisée l'opérateur redevient '='.

J'ai cherché dans le code CustomView je ne vois rien qui gère les opérateurs sur les statuts. Notamment dans set_from_qs() (mais pas plus CustomView.get_criterias() qui semble ne gérer que le cas '=' de manière implicite1).

1

    def get_criterias(self, formdef=None, compile_templates=False, keep_templates=False):                              
        from wcs.backoffice.management import FormPage                                                                 

        if formdef is not None:                                                                                        
            assert formdef.id == self.formdef_id                                                                       
        else:                                                                                                          
            formdef = self.formdef                                                                                     

        form_page = FormPage(formdef=formdef, view=self, update_breadcrumbs=False)                                     
        criterias = form_page.get_view_criterias(                                                                      
            custom_view=self,                                                                                          
            compile_templates=compile_templates,                                                                       
            keep_templates=keep_templates,                                                                             
        )                                                                                                              

        selected_filter = self.get_filter()                                                                            
        if selected_filter and selected_filter != 'all':                                                               
            if selected_filter == 'pending':                                                                           
                applied_filters = ['wf-%s' % x.id for x in formdef.workflow.get_not_endpoint_status()]                 
            elif selected_filter == 'done':                                                                            
                applied_filters = ['wf-%s' % x.id for x in formdef.workflow.get_endpoint_status()]                     
            else:                                                                                                      
                applied_filters = ['wf-%s' % selected_filter]                                                          
            if applied_filters:                                                                                        
                criterias.append(Contains('status', applied_filters))                                                  

        return criterias


Files

Associated revisions

Revision 613dec5d (diff)
Added by Frédéric Péters 13 days ago

backoffice: restore status operator from custom view in listings (#65248)

Revision 7be05db4 (diff)
Added by Frédéric Péters 13 days ago

cards: add status operator support to custom card data sources (#65248)

History

#2

Updated by Frédéric Péters 15 days ago

https://demarches-validation.test.entrouvert.org/backoffice/management/eclairage/tout-sauf-bron/ est une vue avec un critère !=

Il doit manquer un élément à ce ticket.

#3

Updated by Frédéric Péters 15 days ago

Non ok ça n'est pas général ça concerne uniquement le statut. (et c'était bien mentionné à répétition).

#4

Updated by Frédéric Péters 15 days ago

  • Assignee set to Frédéric Péters
#5

Updated by Frédéric Péters 15 days ago

0001 le sujet du ticket distant, on pouvait enregistrer une vue avec un opérateur != sur le statut mais celui-ci se perdait à l'affichage.

0002 pour prendre en compte aussi l'opérateur quand la vue est utilisée en source de données (qui est le code pointé dans la description).

#6

Updated by Benjamin Dauvergne 14 days ago

  • Status changed from Solution proposée to Solution validée
#7

Updated by Frédéric Péters 13 days ago

  • Status changed from Solution validée to Résolu (à déployer)
commit 7be05db4694dc6af7fc69300d0ae271914635d5a
Author: Frédéric Péters <fpeters@entrouvert.com>
Date:   Sat May 14 12:44:39 2022 +0200

    cards: add status operator support to custom card data sources (#65248)

commit 613dec5d33dc0feb75e3e8c6b0a1d19ae9d4c333
Author: Frédéric Péters <fpeters@entrouvert.com>
Date:   Sat May 14 12:20:00 2022 +0200

    backoffice: restore status operator from custom view in listings (#65248)
#8

Updated by Transition automatique 12 days ago

  • Status changed from Résolu (à déployer) to Solution déployée

Also available in: Atom PDF