[Freeipa-devel] [PATCHES] 113-114 Facet expiration flag

Endi Sukma Dewata edewata at redhat.com
Tue Mar 27 15:36:56 UTC 2012


On 3/22/2012 12:50 PM, Petr Vobornik wrote:
> The effort was split to two patches. See patch descriptions.

ACK on both. Nice job. See comments below.

> Notes:
> Case #7 (automatic: an open facet should automatically refresh itself
> when it expires) I don't want to implement because I think it can cause
> havoc ie: refresh when user is editing.

For details page, automatically refreshing the page still makes sense to 
avoid overriding newer data with older information. For example you open 
a user details page to add an email address, but at the same time 
somebody else added another email address to same user. When you finally 
save your changes the other email address will be gone.

I think there are several options:
1. Don't refresh if the page is dirty (i.e. user is editing the page).
2. Refresh unedited fields only.
3. Load the data even though it's being edited, compare with the cached 
data. If something's changed alert the user. The user can either revert 
the changes or continue editing.
4. Use addattr/delattr to modify multi-valued attributes.

The chance of this happening is probably small, and the solution won't 
completely eliminate the risk either, so this is probably lower priority.

For search page, there are 2 things that the page keeps in cache: the 
primary keys and the visible entry details. Currently when you change 
page it will refresh both, so periodically refreshing the page may not 
be that important. However ideally we shouldn't need to refresh the 
primary keys in all page changes because it could be long and most 
likely unchanged. In this case it makes sense to refresh the primary 
keys periodically. Probably separate ticket.

> Also I was thinking about splitting needs_update to two methods:
> needs_update and state_changed. State changed would compare current
> state with old state. It would be called from needs_update. This way we
> don't have to override needs_update and just define various
> state_changed for different facets.

Feel free to refactor the methods if you think it's necessary. But 
before that try to rearrange the current implementations of 
needs_update() and minimize the amount of code that needs to be moved 
into state_changed().

> Also I'm thinking about adding
> paging state comparison to search facet (the page should recognize the
> change itself ie when other facet redirects to certain page (bad
> example?)). What do you think?

Yes, this would be needed if we decided to keep the primary keys for a 
longer time like described above. Changing the page should refresh the 
visible entry details only.

-- 
Endi S. Dewata




More information about the Freeipa-devel mailing list