Ejemplo n.º 1
0
def add_entry(request, topic_id, entry_form = EntryForm, template_name = 'article/add_entry.ouds'):
    """增加文章章节"""

    user = request.user
    if not Topic.objects.filter(id__exact = topic_id).exists():
        return HttpResponseRedirect('/member/%s' % user.username)
    else:
        topic = Topic.objects.get(id__exact = topic_id)

    if request.method == "POST":
        data = request.POST
        data['title'] = data['title'].strip()
        entry = Entry(id = _md5_key(datetime.datetime.now(), user.username), topic = topic)
        entry_form = entry_form(data, instance = entry, auto_id = False)
        if entry_form.is_valid():
            entry = entry_form.save()
            if request.FILES:
                image = request.FILES['image']
                if image.size <= IMAGE_SIZE and (image.name[-3:] in IMG_TYPE):
                    entry.image.save(entry.id + image.name[-4:], image, save = True)
                    watermark(AI_DIR + entry.id + image.name[-4:]).save(AI_DIR + entry.id + image.name[-4:], quality = 90)

            return HttpResponseRedirect('/member/%s' % user.username)
    else:
        entry_form = entry_form(auto_id = False)
    
    return render_to_response(
        template_name,
        {
         'user': user,
         'module': None,
         
         'entry_form': entry_form,
         },
       )
Ejemplo n.º 2
0
def add_topic(request, topic_form = TopicForm, template_name = 'article/add_topic.ouds'):
    """增加文章"""

    user = request.user
    if request.method == "POST":
        data = request.POST
        data['title'] = data['title'].strip()
        now = datetime.datetime.now()
        topic = Topic(id = _md5_key(now, user.username), profile = user.get_profile(), \
                      edit_date = now, is_approved = True) # is_recommended = True
        topic_form = topic_form(data, instance = topic, auto_id = False)
        if topic_form.is_valid():
            topic = topic_form.save()
            if request.FILES:
                icon = request.FILES['icon']
                if icon.size <= ICON_SIZE and (icon.name[-3:] in IMG_TYPE):
                    topic.icon.save(topic.id + icon.name[-4:], icon, save = True)
            # 更新catalog
            catalog = topic.catalog
            catalog.post_count += 1
            catalog.save()
            # 标签处理
            tags = data['tags'].strip().split()
            for tag in tags:
                # 增加tag
                if not Tag.objects.filter(catalog__exact = catalog, name__exact = tag).exists():
                    Tag(catalog = catalog, name = tag).save()
                # 更新tag和topic-tag
                tag = Tag.objects.get(catalog__exact = catalog, name__exact = tag)
                tag.post_count += 1
                tag.save()
                if not topic.tags.filter(name__exact = tag.name).exists():
                    topic.tags.add(tag)

            return HttpResponseRedirect('/member/%s' % user.username)
    else:
        topic_form = topic_form(auto_id = False)
    
    return render_to_response(
        template_name,
        {
         'user': user,
         'module': None,
         
         'topic_form': topic_form,
         },
       )
Ejemplo n.º 3
0
def comment(request, topic_id, comment_form = CommentForm):
    """发表评论"""

    data = request.POST
    topic = Topic.objects.get(id__exact = topic_id)
    comment = Comment(id = _md5_key(datetime.datetime.now(), data['author']), topic = topic, ip = request.META['REMOTE_ADDR'])
    comment_form = comment_form(data, instance = comment, auto_id = False)
    
    if comment_form.is_valid():
        comment.save()
        
        topic.comment_count += 1
        topic.save()
    #else:
    #    comment_form = comment_form(auto_id = False)

    return HttpResponseRedirect(data['topic_url'])