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()
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()
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()
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()
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
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()