[Plone-IT] Listare gli oggetti "scaduti" solo in determinati contesti: quale la Via?

Vito Falco vitofalco a gmail.com
Mer 21 Maggio 2014 13:27:20 UTC


Ciao,
mi trovo nella simpatica situazione di dover fornire la possibilità, alla
Redazione del portale, di permettere che in determinate cartelle e/o
collezioni sia possibile visualizzare oggetti "scaduti" anche all'utenza
anonima.
Il catalog per ogni chiamata fornisce sempre contenti non scaduti. Per
poter forzare questo comportamento è necessario passargli show_inactive
come True.
E in più, per non scrivere nuovi pagetemplate, si potrebbe agevolmente
sfruttare il "contentFilter" che le viste di riepilogo "standard" prendono
in considerazione se presente.
Ovvero:
request.set('contentFilter',{'show_inactive':True})

Io ho in mente due strade alternative, con la premessa simile:
definire una marker interface (ad es. IListaScaduti) che si possa applicare
sulla cartella/collezione target.

- Ipotesi 1
impostare un subscriber che intercetti il before_traverse e nell'handler
mettere un banalissimo IF del tipo "se il contesto implementa IListaScaduti
allora request.set altrimenti passa"

- Ipotesi 2
metter su una viewlet agganciata a IListaScaduti che nella sua __call__
faccia il request.set

Personalmente reputo l'ipotesi 1 "pulita" e zopish, ma suppongo metta a
dura prova - nel suo piccolo - le performance poichè viene richiamata ad
ogni surfing di pagina!
L'ipotesi 2, scarsa di fascino, mi sembra la strada meno dolorosa.

Che ne dite? Suggerimenti?
Vito


-- 
*Vito Falco*
Webdeveloper & designer freelance, Plone enthusiast
Bari, IT
tel +39 3346330137 | skype vito80ba | twitter vito80ba
Linkedin http://it.linkedin.com/in/vitof
-------------- parte successiva --------------
Un allegato HTML è stato rimosso...
URL: <http://lists.plone.org/pipermail/plone-plone-it/attachments/20140521/a613fe0e/attachment.html>


Maggiori informazioni sulla lista Plone-IT