Toggle menu
Toggle preferences menu
Toggle personal menu
Not logged in
Your IP address will be publicly visible if you make any edits.

References/Favorites: Difference between revisions

From OHC Network Wiki
More languages
Content deleted Content added
OHC identity seed
 
Migrate to {{SourceCode}} template
 
(One intermediate revision by the same user not shown)
Line 13: Line 13:
Each list is scoped by a <code>resource_type</code> and, optionally, a <code>facility</code>. There's no <code>EMRResource</code> serialize/de_serialize spec here. The moving parts are an enum (<code>FavoriteResourceChoices</code>), a default-list constant, a DRF filter backend (<code>FavoritesFilter</code>), and a viewset mixin (<code>EMRFavoritesMixin</code>) that wires up the read/write endpoints.
Each list is scoped by a <code>resource_type</code> and, optionally, a <code>facility</code>. There's no <code>EMRResource</code> serialize/de_serialize spec here. The moving parts are an enum (<code>FavoriteResourceChoices</code>), a default-list constant, a DRF filter backend (<code>FavoritesFilter</code>), and a viewset mixin (<code>EMRFavoritesMixin</code>) that wires up the read/write endpoints.


'''Source:'''

* Model: [<nowiki/>https://github.com/ohcnetwork/care/blob/develop/care/emr/models/favorites.py <code>care/emr/models/favorites.py</code>]
* Spec (enum + constant): [<nowiki/>https://github.com/ohcnetwork/care/blob/develop/care/emr/resources/favorites/spec.py <code>care/emr/resources/favorites/spec.py</code>]
* Filter backend: [<nowiki/>https://github.com/ohcnetwork/care/blob/develop/care/emr/resources/favorites/filters.py <code>care/emr/resources/favorites/filters.py</code>]
* Viewset mixin: [<nowiki/>https://github.com/ohcnetwork/care/blob/develop/care/emr/api/viewsets/favorites.py <code>care/emr/api/viewsets/favorites.py</code>]


== Models ==
== Models ==
Line 214: Line 208:
* The list is capped at <code>settings.MAX_FAVORITES_PER_LIST</code> (env <code>MAX_FAVORITES_PER_LIST</code>, default <code>50</code>). <code>add_favorite</code> drops the oldest entries beyond the cap.
* The list is capped at <code>settings.MAX_FAVORITES_PER_LIST</code> (env <code>MAX_FAVORITES_PER_LIST</code>, default <code>50</code>). <code>add_favorite</code> drops the oldest entries beyond the cap.
* Never set the <code>user_favorites_lists:*</code> or <code>user_favorites_list_object:*</code> cache keys from a client. <code>save()</code> / <code>refresh_cache()</code> maintain them, and <code>remove_favorite</code> tears them down when a list empties.
* Never set the <code>user_favorites_lists:*</code> or <code>user_favorites_list_object:*</code> cache keys from a client. <code>save()</code> / <code>refresh_cache()</code> maintain them, and <code>remove_favorite</code> tears them down when a list empties.


{{SourceCode
|model=care/emr/models/favorites.py
|extra1_label=Spec (enum + constant)
|extra1_path=care/emr/resources/favorites/spec.py
|extra2_label=Filter backend
|extra2_path=care/emr/resources/favorites/filters.py
|viewset=care/emr/api/viewsets/favorites.py
}}
{{Navbox platform}}


{{Related}}
{{Related}}