예제 #1
0
 def __call__(self):
     errors = {}
     storage = queryUtility(IShortURLStorage)
     if self.request.get('form.submitted', None) is not None:
         shortcode = self.request.get('shortcode', '')
         target = self.request.get('target', '')
         if not shortcode:
             errors.update(
                 {'shortcode': _(u'You must provide a short code.')})
         if not target:
             errors.update({'target': _(u'You must provide a target.')})
         if SHORTURLRE.match(shortcode) is None:
             errors.update({'shortcode':
                 _(u'Short codes may only contain alphanumeric characters.')})
         if not errors:
             if storage.get(shortcode):
                 errors.update(
                     {'shortcode': _(u'This short code is already in use.')})
             else:
                 storage.add(shortcode, target)
                 self.request.response.redirect(
                     '%s/@@manage-shorturls' % self.context.absolute_url())
                 return ''
                 
     self.request['errors'] = errors
     if not self.request.has_key('shortcode'):
         self.request['shortcode'] = storage.suggest()
         
     return self.addtemplate()
예제 #2
0
    def __call__(self):
        errors = {}
        storage = queryUtility(IShortURLStorage)
        if self.request.get('form.submitted', None) is not None:
            shortcode = self.request.get('shortcode', '')
            target = self.request.get('target', '')
            if not shortcode:
                errors.update(
                    {'shortcode': _(u'You must provide a short code.')})
            if not target:
                errors.update({'target': _(u'You must provide a target.')})
            if SHORTURLRE.match(shortcode) is None:
                errors.update({
                    'shortcode':
                    _(u'Short codes may only contain alphanumeric characters.')
                })
            if not errors:
                if storage.get(shortcode):
                    errors.update({
                        'shortcode':
                        _(u'This short code is already in use.')
                    })
                else:
                    storage.add(shortcode, target)
                    self.request.response.redirect('%s/@@manage-shorturls' %
                                                   self.context.absolute_url())
                    return ''

        self.request['errors'] = errors
        if not self.request.has_key('shortcode'):
            self.request['shortcode'] = storage.suggest()

        return self.addtemplate()
예제 #3
0
 def importmap(self):
     if self.request.has_key('csvfile'):
         error = self._import(self.request['csvfile'])
         if error is not None:
             self.request['error'] = error
         else:
             IStatusMessage(self.request).addStatusMessage(_(u'CSV imported'))
     return self.importtemplate()
예제 #4
0
 def importmap(self):
     if self.request.has_key('csvfile'):
         error = self._import(self.request['csvfile'])
         if error is not None:
             self.request['error'] = error
         else:
             IStatusMessage(self.request).addStatusMessage(
                 _(u'CSV imported'))
     return self.importtemplate()
예제 #5
0
 def _import(self, f):
     storage = queryUtility(IShortURLStorage)
     reader = csvreader(f)
     error = None
     for row in reader:
         if len(row) < 2:
             # Ignore rows with too few columns, this also deals with
             # empty rows
             continue
         if SHORTURLRE.match(row[0]) is None:
             # Ignore funny characters
             return _(u'Your upload contains invalid characters.')
         storage.add(row[0], row[1])
     return error
예제 #6
0
    def __call__(self):
        shortcode = self.request.get('shortcode', None) or self.traversecode
        error = None
        if shortcode:
            target = self.lookup(shortcode)
            if target is not None:
                self.request.response.redirect(target)
                return ''
            else:
                error = _(u'Shortcode does not exist')

        self.request['error'] = error
        self.request['shortcode'] = shortcode
        return self.template()
예제 #7
0
 def _import(self, f):
     storage = queryUtility(IShortURLStorage)
     reader = csvreader(f)
     error = None
     for row in reader:
         if len(row) < 2:
             # Ignore rows with too few columns, this also deals with
             # empty rows
             continue
         if SHORTURLRE.match(row[0]) is None:
             # Ignore funny characters
             return _(u'Your upload contains invalid characters.')
         storage.add(row[0], row[1])
     return error
예제 #8
0
    def __call__(self):
        shortcode = self.request.get('shortcode', None) or self.traversecode
        error = None
        if shortcode:
            target = self.lookup(shortcode)
            if target is not None:
                self.request.response.redirect(target)
                return ''
            else:
                error = _(u'Shortcode does not exist')

        self.request['error'] = error
        self.request['shortcode'] = shortcode
        return self.template()