Пример #1
0
 def generate(self, rsp, user, title, text_src, tags=list(), draft=False, category=None, markup_mode=None, summary_src=None, id=None):
     editing = False
     if self.editable:
         if id:
             try:
                 post = EditablePost.query.filter(EditablePost.id==id).one()
             except NoResultFound:
                 post = EditablePost()
             else:
                 editing = True
         else:
             post = EditablePost()
     else:
         post = Post()
     post.title = title
     post.text = text_src
     if post.title and post.text:
         if editing and not post.draft:
             post.edit_date = datetime.datetime.now()
         else:
             post.date = datetime.datetime.now()
         if tags == u'':
             tags = list()
         post.tags = tags
         post.category = category
         post.summary = summary_src
         if self.editable:
             post.draft = bool(draft)
             post.markup_mode = markup_mode
             post.summary_src = summary_src
             post.text_src = text_src
         post.user = user
     return compact('post')
Пример #2
0
 def generate(self, rsp, rquery):
     try:
         report = rquery.one()
     except NoResultFound:
         raise NotFound
     del rquery
     rquery = None
     return compact('report', 'rquery')
Пример #3
0
 def generate(self, rsp, rquery=None):
     rquery = _rquery(rquery)
     reports = rquery.all()
     if self.fail_if_empty and len(reports) == 0:
         raise NotFound
     del rquery # just a bit of premature optimization, for the fun of it
     rquery = None
     return compact('reports', 'rquery')
Пример #4
0
 def generate(self, rsp, hdf=None, cs=None):
     if hdf is None:
         hdf = neo_util.HDF()
     if cs is None:
         cs = neo_cs.CS(hdf)
     logging.getLogger('modulo.templating.clearsilver').debug('loading file ' + self.filename)
     cs.parseFile(self.filename)
     return compact('hdf', 'cs')
Пример #5
0
 def generate(self, rsp, query):
     records = query.all()
     try:
         d = self.params[self.namespace]
     except AttributeError:
         d = self.params['']
     del d['query']
     if self.raise_not_found and len(records) == 0:
         raise NotFound
     return compact('records')
Пример #6
0
 def generate(self, rsp, hdf=None):
     if hdf is None:
         hdf = neo_util.HDF()
     i = 0 # something from itertools would be better here but whatever
     while True:
         if not hdf.getValue('hdf.loadpaths.' + str(i), ''):
             break
         i += 1
     hdf.setValue('hdf.loadpaths.' + str(i), self.path)
     return compact('hdf')
Пример #7
0
 def generate(self, rsp, text_src, user=None, subject=None):
     postlet = Postlet()
     postlet.text_src = postlet.text = text_src
     if postlet.text_src:
         postlet.subject = subject
         postlet.date = datetime.datetime.now()
         postlet.user = user
         return compact('postlet')
     else:
         postlet.delete()
Пример #8
0
 def generate(self, rsp, text_src, parent_id, user=None, subject=None):
     comment = Comment()
     comment.text_src = comment.text = text_src
     if comment.text_src:
         comment.subject = subject
         comment.date = datetime.datetime.now()
         comment.parent = BaseComment.query.filter(BaseComment.id==parent_id).one()
         comment.user = user
         return compact('comment')
     else:
         comment.delete()
Пример #9
0
 def generate(self, rsp, query):
     try:
         record = query.one()
     except NoResultFound:
         raise NotFound
     finally:
         try:
             d = self.params[self.namespace]
         except AttributeError:
             d = self.params['']
         del d['query']
     return compact('record')
Пример #10
0
 def generate(self, rsp, user, title, category, text, tags=list()):
     report = Report()
     report.title = title
     report.text = text
     if report.title and report.text:
         report.date = datetime.datetime.now()
         if tags == u'':
             tags = list()
         report.tags = tags
         report.category = category
         report.status = 'NEW'
         report.user = user
     return compact('report')
Пример #11
0
 def generate(self, rsp):
     xml_request = self.req.read()
     try:
         (source_uri, target_uri), method = xmlrpclib.loads(xml_request)
     except ExpatError:
         raise BadRequest('Expecting XML-RPC request')
     if method != 'pingback.ping':
         return {'fault': Fault(-32601, 'Method %s not supported' % method)}
     linkback = Linkback()
     linkback.local_host = self.req.host
     linkback.local_uri = urlparse.urlsplit(canonicalize(target_uri)).path
     linkback.remote_url = source_uri
     return compact('linkback')
Пример #12
0
 def generate(self, rsp):
     files_to_save = ((make_file(upload.filename), upload) for name, upload in self.req.files.iteritems() if upload.filename)
     uploads = []
     for (file_obj, subdir, name, path), upload in files_to_save:
         try:
             upload.save(file_obj)
         except (IOError,OSError):
             logging.getLogger('modulo.addons.upload').exception('Error saving uploaded file to ' + path)
             continue
         else:
             uploads.append(Upload(mime_type=upload.content_type, group=subdir, filename=name, path=path))
         finally:
             file_obj.close()
     return compact('uploads')
Пример #13
0
 def generate(self, rsp, canonical_uri, url=None, title=None, excerpt=None, blog_name=None):
     linkback = Linkback()
     linkback.local_uri = canonical_uri
     linkback.remote_url = url
     if not linkback.local_uri:
         linkback_error = 'No target URL specified'
     elif not linkback.remote_url:
         linkback_error = 'No linking URL specified'
     elif self.req.method != 'POST':
         linkback_error = 'HTTP POST method not used'
     else:
         linkback.local_host = self.req.host
         linkback.remote_title = title
         linkback.remote_excerpt = excerpt
         linkback.remote_name = blog_name
     return compact('linkback')
Пример #14
0
 def generate(self, rsp, query, model, page=None, page_size=None):
     if page_size is None:
         page_size = self.page_size
     if page is None:
         page = 1
     else:
         page = int(page)
         logging.getLogger('modulo.addons.publish').debug('Displaying page ' + str(page))
     count = query.count()
     pages = max(0, count - 1) // page_size + 1 # this is ceil(post_count / page_size)
     query = query.offset((page - 1) * page_size).limit(page_size)
     d = compact('query', 'page_size', 'page', 'pages', 'count')
     if page < pages:
         d['page_next'] = page + 1
     if page > 1:
         d['page_prev'] = page - 1
     return d
Пример #15
0
 def generate(self, rsp, hdf=None):
     if hdf is None:
         hdf = neo_util.HDF()
     logging.getLogger('modulo.templating.clearsilver').debug('loading file ' + self.filename)
     hdf.readFile(self.filename)
     return compact('hdf')