예제 #1
0
파일: main.py 프로젝트: ignovak/uarat
def forum_from_url(url):
  assert '/' == url[0]
  path = url[1:]
  if '/' in path:
    (forumurl, rest) = path.split("/", 1)
  else:
    forumurl = path
  return Forum.gql("WHERE url = :1", forumurl).get()
예제 #2
0
파일: main.py 프로젝트: ignovak/uarat
def forum_siteroot_tmpldir_from_url(url):
  assert '/' == url[0]
  path = url[1:]
  if '/' in path:
    (forumurl, rest) = path.split("/", 1)
  else:
    forumurl = path
  forum = Forum.gql("WHERE url = :1", forumurl).get()
  if not forum:
    return (None, None, None)
  siteroot = forum_root(forum)
  skin_name = forum.skin
  if skin_name not in SKINS:
    skin_name = SKINS[0]
  tmpldir = os.path.join("skins", skin_name)
  return (forum, siteroot, tmpldir)
예제 #3
0
파일: main.py 프로젝트: skid/fofou
 def post(self):
   """ Responds to POST requests to the /manageforums URL """
   self.init()
   
   if self.redir or not self.admin:
     return self.redirect("/")
   
   if not RE_VALID_URL.match( self.request.get('url') ) or \
      not self.forum and Forum.gql("WHERE url = :1", self.request.get('url') ).get():
     self.tvals.update({
       'errmsg': "Url contains illegal characters or is already used by another forum",
       'hosturl': self.request.host_url,
       'forum': { 
         'url': self.request.get('url'), 
         'title': self.request.get('title'), 
         'tagline': self.request.get('tagline'), 
         'sidebar': self.request.get('sidebar'), 
         'analytics_code': self.request.get('analytics_code')
       }
     })
     return self.template_out(self.tpl, self.tvals)
   
   if self.forum:
     forum         = self.forum
     forum.url     = self.request.get('url')
     forum.title   = self.request.get('title')
     forum.tagline = self.request.get('tagline')
     forum.sidebar = self.request.get('sidebar')
     forum.analytics_code = self.request.get('analytics_code')
   else:
     forum = Forum(
       url=self.request.get('url'), 
       title=self.request.get('title'), 
       tagline=self.request.get('tagline'), 
       sidebar=self.request.get('sidebar'), 
       analytics_code=self.request.get('analytics_code')
     )
   
   forum.put()
   return self.redirect("/manageforums")
예제 #4
0
파일: main.py 프로젝트: ignovak/uarat
  def post(self):
    self.user()
    if not self.is_admin:
      return self.redirect("/")

    forum_key = self.request.get('forum_key')
    forum = None
    if forum_key:
      forum = db.get(db.Key(forum_key))
      if not forum:
        # invalid key - should not happen so go to top-level
        return self.redirect("/")

    vals = ['url','title', 'tagline', 'sidebar', 'group', 'disable', 'enable', 'analyticscode']
    (url, title, tagline, sidebar, group, disable, enable, analytics_code) = req_get_vals(self.request, vals)

    if group not in Forum.GROUPES:
      # invalid group - should not happen so go to top-level
      return self.redirect("/")

    errmsg = None
    if not valid_forum_url(url):
      errmsg = "Url contains illegal characters"
    if not forum:
      forum_exists = Forum.gql("WHERE url = :1", url).get()
      if forum_exists:
        errmsg = "Forum with this url already exists"

    if errmsg:
      tvals = {
        'urlclass' : "error",
        'hosturl' : self.request.host_url,
        'prevurl' : url,
        'prevtitle' : title,
        'prevtagline' : tagline,
        'prevsidebar' : sidebar,
        'prevanalyticscode' : analytics_code,
        'forum_key' : forum_key,
        'errmsg' : errmsg
      }
      return self.render_rest(tvals)

    title_or_url = title or url
    if forum:
      # update existing forum
      forum.url = url
      forum.title = title
      forum.tagline = tagline
      forum.sidebar = sidebar
      forum.group = group
      forum.analytics_code = analytics_code
      forum.put()
      msg = "Forum '%s' has been updated." % title_or_url
    else:
      # create a new forum
      Forum(
        url=url,
        title=title,
        tagline=tagline,
        sidebar=sidebar,
        group=group,
        analytics_code=analytics_code
      ).put()
      msg = "Forum '%s' has been created." % title_or_url
    url = "/manageforums?msg=%s" % urllib.quote(to_utf8(msg))
    return self.redirect(url)