0001-forms-factor-out-file-attachment-lookup-8031.patch
wcs/forms/common.py | ||
---|---|---|
32 | 32 | |
33 | 33 |
class FileDirectory(Directory): |
34 | 34 |
_q_exports = [] |
35 |
_lookup_methods = ['lookup_file_field'] |
|
35 | 36 | |
36 |
def __init__(self, formdata, field_no):
|
|
37 |
def __init__(self, formdata, reference):
|
|
37 | 38 |
self.formdata = formdata |
38 |
self.field_no = field_no |
|
39 |
self.reference = reference |
|
40 | ||
41 |
def lookup_file_field(self, filename): |
|
42 |
if self.reference in self.formdata.data: |
|
43 |
return self.formdata.data[self.reference] |
|
39 | 44 | |
40 | 45 |
def _q_lookup(self, component): |
41 |
file = self.formdata.data[self.field_no] |
|
46 |
upload = None |
|
47 |
for lookup_method_name in self._lookup_methods: |
|
48 |
lookup_method = getattr(self, lookup_method_name) |
|
49 |
file = lookup_method(filename=component) |
|
50 |
if file: |
|
51 |
break |
|
52 |
else: |
|
53 |
# no such file |
|
54 |
raise errors.TraversalError() |
|
42 | 55 | |
43 | 56 |
if component and component != file.base_filename: |
44 | 57 |
raise errors.TraversalError() |
... | ... | |
67 | 80 |
self.formdata = formdata |
68 | 81 | |
69 | 82 |
def _q_lookup(self, component): |
70 |
return FileDirectory(self.formdata, component) |
|
83 |
return FileDirectory(self.formdata, reference=component)
|
|
71 | 84 | |
72 | 85 | |
73 | 86 |
class FormStatusPage(Directory): |
74 |
- |