예제 #1
0
def messages(request, fid, tid):
    form = Form()
    fields = request.getForm()
    user = users.get_current_user()
    uid = user.user_id()

    # sanitize
    author = utils.toStr(fields.get('author', 'Anonymous'), 40)
    email = fields.get('email')
    url = fields.get('url')
    content = utils.toTxt(fields.get('content', ''), 9000)

    # validate
    ok = True
    warn = []
    if email or url or 'http' in content:
        form.ok = False
        form.redirect = True
        form.url = '%s/%s/%s' % (app.root, fid, tid)
        return form
    if not author:
        warn.append('You need to identify yourself as the author')
        ok = False
    if author == author.upper():
        warn.append('Author can not be all caps')
        ok = False
    if not content:
        warn.append('You must enter some content')
        ok = False
    if content == content.upper():
        warn.append('Content can not be all caps')
        ok = False

    # process
    if ok:
        form.ok = True
        form.url = '%s/%s/%s' % (app.root, fid, tid)
        data = {
            'topicid': tid,
            'forumid': fid,
            'userid': str(uid),
            'author': author,
            'content': content
        }
        models.newMessage(data)
    else:
        form.ok = False
        form.warn = warn
        form.data = {
            'forum': models.getForum(fid),
            'topic': models.getTopic(tid),
            'list': models.getMessages(tid),
            'warn': warn,
            'author': author,
            'content': content
        }
    return form
예제 #2
0
파일: forms.py 프로젝트: GeorgeNava/forum
def messages(request,fid,tid):
  form   = Form()
  fields = request.getForm()
  user   = users.get_current_user()
  uid    = user.user_id()

  # sanitize
  author = utils.toStr(fields.get('author','Anonymous'),40)
  email  = fields.get('email')
  url    = fields.get('url')
  content= utils.toTxt(fields.get('content',''),9000)

  # validate
  ok=True
  warn=[]
  if email or url or 'http' in content:
    form.ok=False
    form.redirect=True
    form.url='%s/%s/%s'%(app.root,fid,tid)
    return form
  if not author:
    warn.append('You need to identify yourself as the author')
    ok=False
  if author==author.upper():
    warn.append('Author can not be all caps')
    ok=False
  if not content:
    warn.append('You must enter some content')
    ok=False
  if content==content.upper():
    warn.append('Content can not be all caps')
    ok=False

  # process
  if ok:
    form.ok   = True
    form.url  = '%s/%s/%s'%(app.root,fid,tid)
    data      = {'topicid':tid,'forumid':fid,'userid':str(uid),'author':author,'content':content}
    models.newMessage(data)
  else:
    form.ok   = False
    form.warn = warn
    form.data = {
      'forum'  :models.getForum(fid),
      'topic'  :models.getTopic(tid),
      'list'   :models.getMessages(tid),
      'warn'   :warn,
      'author' :author,
      'content':content
    }
  return form
예제 #3
0
파일: forms.py 프로젝트: GeorgeNava/forum
def newTopic(request,fid):
  form   = Form()
  fields = request.getForm()
  user   = users.get_current_user()
  uid    = user.user_id()

  # sanitize
  title  = utils.toStr(fields.get('title',''),80)
  imp    = utils.toInt(fields.get('importance','0'))
  author = utils.toStr(fields.get('author',''),40)
  email  = fields.get('email')
  url    = fields.get('url')
  content= utils.toTxt(fields.get('content',''),9000)

  # validate
  ok=True
  warn=[]
  if email or url:
    form.ok=False
    form.redirect=True
    form.url='%s/%s'%(app.root,fid)
    return form
  if not title:
    warn.append('Title can not be empty')
    ok=False
  if title==title.upper():
    warn.append('Title can not be all caps')
    ok=False
  if not author:
    warn.append('You need to identify as the author')
    ok=False
  if author==author.upper():
    warn.append('Author can not be all caps')
    ok=False
  if not content:
    warn.append('You must enter some content')
    ok=False
  if content==content.upper():
    warn.append('Content can not be all caps')
    ok=False
  if ok:
    dat1 = {'forumid':fid,'title':title,'userid':str(uid),'author':author,'importance':imp}
    rec1 = models.newTopic(dat1)
    tid  = rec1.topicid
    dat2 = {'topicid':tid,'forumid':fid,'userid':str(uid),'author':author,'content':content}
    rec2 = models.newMessage(dat2)
    form.ok  = True
    form.url = '%s/%s/%s'%(app.root,fid,tid)
  else:
    form.ok   = False
    form.warn = warn
    form.data = {
      'forum'  :models.getForum(fid),
      'warn'   :warn,
      'title'  :title,
      'author' :author,
      'content':content
    }
  return form
예제 #4
0
def newTopic(request, fid):
    form = Form()
    fields = request.getForm()
    user = users.get_current_user()
    uid = user.user_id()

    # sanitize
    title = utils.toStr(fields.get('title', ''), 80)
    imp = utils.toInt(fields.get('importance', '0'))
    author = utils.toStr(fields.get('author', ''), 40)
    email = fields.get('email')
    url = fields.get('url')
    content = utils.toTxt(fields.get('content', ''), 9000)

    # validate
    ok = True
    warn = []
    if email or url:
        form.ok = False
        form.redirect = True
        form.url = '%s/%s' % (app.root, fid)
        return form
    if not title:
        warn.append('Title can not be empty')
        ok = False
    if title == title.upper():
        warn.append('Title can not be all caps')
        ok = False
    if not author:
        warn.append('You need to identify as the author')
        ok = False
    if author == author.upper():
        warn.append('Author can not be all caps')
        ok = False
    if not content:
        warn.append('You must enter some content')
        ok = False
    if content == content.upper():
        warn.append('Content can not be all caps')
        ok = False
    if ok:
        dat1 = {
            'forumid': fid,
            'title': title,
            'userid': str(uid),
            'author': author,
            'importance': imp
        }
        rec1 = models.newTopic(dat1)
        tid = rec1.topicid
        dat2 = {
            'topicid': tid,
            'forumid': fid,
            'userid': str(uid),
            'author': author,
            'content': content
        }
        rec2 = models.newMessage(dat2)
        form.ok = True
        form.url = '%s/%s/%s' % (app.root, fid, tid)
    else:
        form.ok = False
        form.warn = warn
        form.data = {
            'forum': models.getForum(fid),
            'warn': warn,
            'title': title,
            'author': author,
            'content': content
        }
    return form