Projet

Général

Profil

0001-forms-factor-out-file-attachment-lookup-8031.patch

Frédéric Péters, 20 août 2015 11:56

Télécharger (1,76 ko)

Voir les différences:

Subject: [PATCH 1/4] forms: factor out file attachment lookup (#8031)

 wcs/forms/common.py | 21 +++++++++++++++++----
 1 file changed, 17 insertions(+), 4 deletions(-)
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
-