-
-
Notifications
You must be signed in to change notification settings - Fork 135
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Revisiting a form step does not refresh the return from storage.get_step_files(). #207
Comments
I suspect that clearing the cache, including deleting any previously stored files, would also address #191. |
An evolved version of the workaround from #191 that also caters for this problem is: for file in list(self.storage.current_step_files or []):
self.storage._files.pop((self.steps.current, file))
file = self.storage.data[self.storage.step_files_key][self.steps.current].pop(file)
self.file_storage.delete(file['tmp_name'])
#
# Insert the above before the call to:
#
self.storage.set_step_files(self.steps.current, self.process_step_files(form)) Of course, putting the corresponding logic inside |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Let say you have a wizard with steps A, B, C... such that step A (for example) has an uploaded file. When step A is passed, form A is validated and the selected file is remembered by storage.get_step_files() in a cache called self._files, and now the current step is B.
If one navigates back to A, even if the selected file is changed, the cache is NOT refreshed because the logic for self._files look like this:
Since neither step nor field have changed, the cache is not refreshed!
The problem is most obvious when the physical name of the file changes, because the content of
self.data[self.step_files_key][step]
has the new file, butself.get_step_files(self.current_step)
and thuscurrent_step_files
have the old file name.I'm not 100% sure of the reason for the cache, but it seems to me that when a step is revisited, the cache MUST be cleared (even if the filename is the same, it might contain something new!!!).
The text was updated successfully, but these errors were encountered: