예제 #1
0
    def __call__(self):

        request = BaseRequest()
        site = self.context.getSite()
        request['PARENTS'] = [site]
        request.steps = list(self.context.getPhysicalPath())
        request['URL'] = site.absolute_url()
        request.response = Response()
        import pdb; pdb.set_trace()
        request.traverse('who-who')

        return
예제 #2
0
    def test___before_publishing_traverse__(self):
        dummy_view = self.site._setObject( 'dummy_view', DummyObject() )
        response = HTTPResponse()
        environment = { 'URL': '',
                        'PARENTS': [self.site],
                        'REQUEST_METHOD': 'GET',
                        'steps': [],
                        '_hacked_path': 0,
                        'response': response }
        r = BaseRequest(environment)

        r.traverse('foo')
        self.assertEqual( r.URL, '/foo/dummy_view' )
        self.assertEqual( r.response.base, '/foo/',
                          'CMF Collector issue #192 (wrong base): %s'
                          % (r.response.base or 'empty',) )
예제 #3
0
 def makeBaseRequest(self):
     response = HTTPResponse()
     environment = { 'URL': '',
                     'PARENTS': [self.root],
                     'steps': [],
                     '_hacked_path': 0,
                     '_test_counter': 0,
                     'response': response }
     return BaseRequest(environment)
예제 #4
0
    def __call__(self):

        request = BaseRequest()
        site = self.context.getSite()
        request['PARENTS'] = [site]
        request.steps = list(self.context.getPhysicalPath())
        request['URL'] = site.absolute_url()
        request.response = Response()
        import pdb
        pdb.set_trace()
        request.traverse('who-who')

        return
예제 #5
0
 def __init__(self, *args, **kw):
     BaseRequest.__init__(self, *args, **kw)
     self['PATH_INFO'] = self['URL'] = ''
     self.steps = []
예제 #6
0
 def __init__(self, *args, **kw):
     BaseRequest.__init__(self, *args, **kw)
     self['PATH_INFO'] = self['URL'] = ''
     self.steps = []
예제 #7
0
    def run(self, *args, **kwargs):

        self.payload = kwargs['payload']
        self.template = kwargs['template']
        self.rec_id = kwargs['rec_id']

        site = getSite()

        user = getSecurityManager().getUser()
        acl_users = site.acl_users
        user = user.__of__(acl_users)
        user_id = kwargs['user_id']

        request = BaseRequest()
        request.response = Response()
        request.AUTHENTICATED_USER = user
        request['PARENTS'] = [site]
        request['URL'] = kwargs['url']
        request.steps = []
        request.cookies = {}
        request.form = {}

        import_location = site.unrestrictedTraverse(kwargs['import_path'])

        import_location.REQUEST = request
        site.REQUEST = request

        geo_fields = kwargs['geo_fields']
        self.prop_map = kwargs['properties']
        meta_type = kwargs['meta_type']

        header = self.template
        row = self.payload
        record_number = self.rec_id

        content_type = import_location.getSite().get_pluggable_item(meta_type)
        add_object = content_type['add_method']

        properties = {}
        extra_properties = {}
        address = None

        for column, value in zip(header, row):

            if value == '':
                continue

            if column not in self.prop_map:
                extra_properties[column] = value
                continue

            key = self.prop_map[column]['column']
            widget = self.prop_map[column]['widget']
            widget = widget.__of__(import_location)
            convert = widget.convert_from_user_string
            properties[key] = convert(value)

        try:
            properties = do_geocoding(geo_fields, properties)
        except GeocoderServiceError, e:
            msg = (
                'Warnings: could not find a valid address '
                'for row ${record_number}: ${error}',
                {
                    'record_number': record_number + 1,  # account for header
                    'error': str(e)
                })
            self.warnings.append(msg)
            address = properties.pop(geo_fields['address'])
예제 #8
0
    def run(self, *args, **kwargs):

        self.payload = kwargs['payload']
        self.template = kwargs['template']
        self.rec_id = kwargs['rec_id']

        site = getSite()

        user = getSecurityManager().getUser()
        acl_users = site.acl_users
        user = user.__of__(acl_users)
        user_id = kwargs['user_id']

        request = BaseRequest()
        request.response = Response()
        request.AUTHENTICATED_USER = user
        request['PARENTS'] = [site]
        request['URL'] = kwargs['url']
        request.steps = []
        request.cookies = {}
        request.form = {}

        import_location = site.unrestrictedTraverse(kwargs['import_path'])

        import_location.REQUEST = request
        site.REQUEST = request

        geo_fields = kwargs['geo_fields']
        self.prop_map = kwargs['properties']
        meta_type = kwargs['meta_type']

        header = self.template
        row = self.payload
        record_number = self.rec_id

        content_type = import_location.getSite().get_pluggable_item(meta_type)
        add_object = content_type['add_method']

        properties = {}
        extra_properties = {}
        address = None

        for column, value in zip(header, row):

            if value == '':
                continue

            if column not in self.prop_map:
                extra_properties[column] = value
                continue

            key = self.prop_map[column]['column']
            widget = self.prop_map[column]['widget']
            widget = widget.__of__(import_location)
            convert = widget.convert_from_user_string
            properties[key] = convert(value)

        try:
            properties = do_geocoding(geo_fields, properties)
        except GeocoderServiceError, e:
            msg = ('Warnings: could not find a valid address '
                    'for row ${record_number}: ${error}',
                    {'record_number': record_number + 1,     # account for header
                    'error': str(e)})
            self.warnings.append(msg)
            address = properties.pop(geo_fields['address'])