Calen Pennington
a2cbd16680
Merge pull request #7789 from cpennington/wrap-csm
...
Wrap access to CSM (inside FieldDataCache) to use the new interface
2015-05-20 16:11:07 -04:00
Calen Pennington
122039ac58
Add __len__ to FieldDataCache
2015-05-20 15:33:31 -04:00
Calen Pennington
4625036d31
Standardize on triple double-quotes for docstrings
2015-05-20 15:33:30 -04:00
Calen Pennington
827a8f815a
Improve documentation of courseware.model_data
2015-05-20 15:33:30 -04:00
Calen Pennington
bd1e9aa129
Record valid scopes when raising InvalidScopeError
2015-05-20 15:33:30 -04:00
Calen Pennington
3e8631c214
Make the use of StudentModules explicit in variable names in user_state_client.py
2015-05-20 15:33:30 -04:00
Calen Pennington
13dc390f7a
Use a specialized method to clean up DjangoKeyValueStore
2015-05-20 15:33:30 -04:00
Calen Pennington
7d2909c5b5
Add contracts to DjangoXBlockUserStateClient interface methods
2015-05-20 15:33:29 -04:00
Calen Pennington
2bfbd57ec1
Add a test case for an XBlock that has no student state fields, but sets a score
2015-05-20 15:33:29 -04:00
Calen Pennington
2e06e592ca
Use DjangoXBlockUserStateClient to implement UserStateCache
2015-05-20 15:33:29 -04:00
Calen Pennington
257660ed85
Move query-chunking into StudentModule and related ORM-objects
2015-05-20 15:33:29 -04:00
Calen Pennington
cacdbc35d7
Remove the ability to select_for_updates from FieldDataCache.
...
The only consumer of that functionality (the XQueue callback) already
does retries, so newly introduce integrity errors (due to multiple
commiters trying to update a StudentModule) won't break the XQueue
processing pipeline.
2015-05-20 15:07:29 -04:00
Calen Pennington
e6db0af1f1
Use current OpaqueKeys methods when loading a block for the XQueue callback
2015-05-20 15:07:29 -04:00
Calen Pennington
8d9d6ce0ec
Clarify the interface used by xqueue_callback to load an XBlock
2015-05-20 15:07:28 -04:00
Calen Pennington
917ea90dc3
Inline some private methods in UserStateCache
2015-05-20 15:07:28 -04:00
Calen Pennington
674b68b7e3
Add implementation of get_many and set_many to DjangoXBlockUserStateClient
2015-05-20 15:07:28 -04:00
Calen Pennington
1ec4ae7c26
Add more documentation to XBlockUserStateClient interface
2015-05-20 15:07:28 -04:00
Calen Pennington
4c3fb2d07e
Enforce user-state only for StudentModule backend Client
2015-05-20 15:07:28 -04:00
Calen Pennington
c9dbd2c308
Add an empty implementation of XBlockUserStateClient backed by StudentModule
2015-05-20 15:07:27 -04:00
Calen Pennington
57d5fa28b5
Reorder methods in UserStateCache
2015-05-20 15:07:27 -04:00
Calen Pennington
3ea74743ee
Flatten DjangoOrmFieldCache methods into UserStateCache
2015-05-20 15:07:27 -04:00
Calen Pennington
8c959528bc
Add a last_modified method to FieldDataCache
2015-05-20 15:07:27 -04:00
Calen Pennington
3430024d22
Add a temporary set_grade method to the FieldDataCache and UserStateCache
2015-05-20 15:07:26 -04:00
Calen Pennington
c3bb2e9b3a
Use per-type cache set_many calls in FieldDataCache set_many
2015-05-20 15:07:26 -04:00
Calen Pennington
60e436c290
Push get down into per-type caches
2015-05-20 15:07:26 -04:00
Calen Pennington
407db16938
Implement per-type set methods in terms of set_many methods
2015-05-20 15:07:25 -04:00
Calen Pennington
12740fa4ac
Make test_model_data test_set_many_failure slightly more robust
2015-05-20 15:07:25 -04:00
Calen Pennington
67d66184a7
Push set_many save() calls into per-type caches
2015-05-20 15:07:25 -04:00
Calen Pennington
97c2513ed8
Push set_many object creation down into per-type caches
2015-05-20 15:07:24 -04:00
Calen Pennington
a0555d4cdc
Add more documentation to DjangoOrmFieldCache
2015-05-20 15:07:24 -04:00
Calen Pennington
7a9923e289
Inline find_or_create
2015-05-20 15:07:24 -04:00
Calen Pennington
6ce7cc771a
Move has logic down into per-scope caches
2015-05-20 15:07:23 -04:00
Calen Pennington
43d41d6648
Move delete logic down into per-scope caches
2015-05-20 15:07:23 -04:00
Calen Pennington
d1fae17ca2
Move the logic from find into the methods that use it
2015-05-20 15:07:23 -04:00
Calen Pennington
3bcd5ceb50
Push has down into FieldDataCache from DjangoKeyValueStore
2015-05-20 15:07:23 -04:00
Calen Pennington
9338b6a480
Push delete down into FieldDataCache from DjangoKeyValueStore
2015-05-20 15:07:22 -04:00
Calen Pennington
ebb3c906ff
Push set_many down into FieldDataCache from DjangoKeyValueStore
2015-05-20 15:07:22 -04:00
Calen Pennington
951c19d789
Push get down into FieldDataCache, from DjangoKeyValueStore
2015-05-20 15:07:22 -04:00
Calen Pennington
5df3c22651
Push cache_key transformations inside the cache objects
2015-05-20 15:07:21 -04:00
Calen Pennington
29606a170d
Extract common django-orm-backed-cache functionality
2015-05-20 15:07:21 -04:00
Calen Pennington
7909bee511
Stop leaking private _data members from per-scope caches
2015-05-20 15:07:21 -04:00
Calen Pennington
01cf2a3225
Store cache objects, rather than dictionaries generated by cache objects
2015-05-20 15:07:21 -04:00
Calen Pennington
21bcf55dba
Extract _all_block_types and _all_usage_keys out of cache class
2015-05-20 15:07:20 -04:00
Calen Pennington
4463f71148
Separate caching for particular fields from instantiating the cache
2015-05-20 15:07:20 -04:00
Calen Pennington
0d37ec8099
Change the central cache to store at two levels: first by scope, then by cache key
2015-05-20 15:07:20 -04:00
Calen Pennington
645d2a727f
Move field_object -> cache_key transformations to the scope-specific caches
2015-05-20 15:07:19 -04:00
Calen Pennington
7353d40b16
Push field_object iteration inside _retrieve_fields, and rename to _cache_fields
2015-05-20 15:07:19 -04:00
Calen Pennington
9059727672
Extract cache instantiation into classes per-scope
2015-05-20 15:07:19 -04:00
Calen Pennington
fd0c47bc42
Extract query chunking from FieldDataCache
2015-05-20 15:07:18 -04:00
Calen Pennington
4182f87490
Add the candidate XBlockUserStateClient interface
2015-05-20 15:07:18 -04:00