示例#1
0
def login(request):
    context_map = get_base_context_map(request)
    errorMsg = ""
    redirect_to = request.REQUEST.get(REDIRECT_FIELD_NAME, '/')
    form = LoginForm()
    if request.POST:
        errorMsg = "登录失败"
        form = LoginForm(request.POST)
        if form.is_valid():
            #做基本验证外的其他验证
            data = form.cleaned_data
            from django.contrib import auth
            user = auth.authenticate(username=data['username'],\
                password=data['password'])
            if user is not None:
                errorMsg = ""
                auth.login(request, user)
                #request.session.delete_test_cookie()
                return HttpResponseRedirect(redirect_to)
            else:
                errorMsg = "您输入的用户名或密码不正确,请重试。"
    #request.session.set_test_cookie()
    context_map['form'] = form
    context_map['errorMsg'] = errorMsg
    return render_to_response('userpanel/login.html', context_map)
示例#2
0
文件: views.py 项目: itssiva/oldphoto
def login(request):
    context_map = get_base_context_map(request)
    errorMsg = ""
    redirect_to = request.REQUEST.get(REDIRECT_FIELD_NAME, "/")
    form = LoginForm()
    if request.POST:
        errorMsg = "登录失败"
        form = LoginForm(request.POST)
        if form.is_valid():
            # 做基本验证外的其他验证
            data = form.cleaned_data
            from django.contrib import auth

            user = auth.authenticate(username=data["username"], password=data["password"])
            if user is not None:
                errorMsg = ""
                auth.login(request, user)
                # request.session.delete_test_cookie()
                return HttpResponseRedirect(redirect_to)
            else:
                errorMsg = "您输入的用户名或密码不正确,请重试。"
    # request.session.set_test_cookie()
    context_map["form"] = form
    context_map["errorMsg"] = errorMsg
    return render_to_response("userpanel/login.html", context_map)
示例#3
0
文件: views.py 项目: itssiva/oldphoto
def avatar(request):
    def save_tmp_img(img):
        import os

        filename = os.path.join(settings.ROOT_PATH, "tmp_img.tmp")
        imgfile = open(filename, "wb")
        for chunk in img.chunks():
            imgfile.write(chunk)
        imgfile.close()
        return filename

    context_map = get_base_context_map(request)
    user = request.user
    form = AvatarForm()  # user.get_profile().__dict__
    if request.method == "POST":  # if request.POST:
        form = AvatarForm(request.POST, files=request.FILES)
        if form.is_valid():
            clean_data = form.cleaned_data
            if clean_data["avatar"]:
                avatar = clean_data["avatar"]
                # FIXME move the tmp img
                tmp_img = save_tmp_img(avatar)
                upload_avatar(tmp_img, user.id)
                user.get_profile().avatar = str(user.id) + ".jpg"
            else:
                user.get_profile().avatar = ""
            user.get_profile().save()
            return HttpResponseRedirect("/space/")
    context_map["form"] = form
    return render_to_response("userpanel/avatar.html", context_map)
示例#4
0
def avatar(request):
    def save_tmp_img(img):
        import os
        filename = os.path.join(settings.ROOT_PATH, 'tmp_img.tmp')
        imgfile = open(filename, 'wb')
        for chunk in img.chunks():
            imgfile.write(chunk)
        imgfile.close()
        return filename

    context_map = get_base_context_map(request)
    user = request.user
    form = AvatarForm()  #user.get_profile().__dict__
    if request.method == 'POST':  #if request.POST:
        form = AvatarForm(request.POST, files=request.FILES)
        if form.is_valid():
            clean_data = form.cleaned_data
            if clean_data['avatar']:
                avatar = clean_data['avatar']
                #FIXME move the tmp img
                tmp_img = save_tmp_img(avatar)
                upload_avatar(tmp_img, user.id)
                user.get_profile().avatar = str(user.id) + '.jpg'
            else:
                user.get_profile().avatar = ''
            user.get_profile().save()
            return HttpResponseRedirect('/space/')
    context_map['form'] = form
    return render_to_response('userpanel/avatar.html', context_map)
示例#5
0
def allrecommends(request):
    context_map = get_base_context_map(request)
    recommend_photos=RecommendPhoto.objects.all().\
        order_by("-create_date")
    #context_map['recommend_photos']=recommend_photos
    return object_list(request,
                       recommend_photos,
                       paginate_by=25,
                       template_name='allrecommend.html',
                       extra_context=context_map,
                       allow_empty=True)
示例#6
0
def allnewphotos(request):
    context_map=get_base_context_map(request)
    new_photos=Photo.objects.all().filter(show_type='s').\
        order_by("-create_date")
    #context_map['new_photos']=new_photos
    return object_list(request,
                       new_photos,
                       paginate_by=25,
                       template_name='allnewphotos.html',
                       extra_context=context_map,
                       allow_empty=True)
示例#7
0
def allhotphotos(request):
    context_map=get_base_context_map(request)
    hot_photos=Photo.objects.all().filter(show_type='s').\
        order_by("-view_count")
    #context_map['hot_photos']=hot_photos
    return object_list(request,
                       hot_photos,
                       paginate_by=25,
                       template_name='allhotphotos.html',
                       extra_context=context_map,
                       allow_empty=True)
示例#8
0
def check(request, id):
    """
    确认图片(添加/编辑后)
    """
    photo = get_object_or_404(Photo, pk=id)
    user = request.user
    if photo.show_type == 'h' and not is_superuser(user):
        raise Http404
    context_map = get_base_context_map(request)
    context_map['photo'] = photo
    return render_to_response('photos/check.html', context_map)
示例#9
0
def allcomments(request):
    context_map=get_base_context_map(request)
    comments = PhotoComment.objects.all().filter(show_type='s').\
        order_by("-create_date")
    #context_map['comments']=comments
    return object_list(request,
                       comments,
                       paginate_by=25,
                       template_name='allcomments.html',
                       extra_context=context_map,
                       allow_empty=True)
示例#10
0
def allhotphotos(request):
    context_map = get_base_context_map(request)
    hot_photos=Photo.objects.all().filter(show_type='s').\
        order_by("-view_count")
    #context_map['hot_photos']=hot_photos
    return object_list(request,
                       hot_photos,
                       paginate_by=25,
                       template_name='allhotphotos.html',
                       extra_context=context_map,
                       allow_empty=True)
示例#11
0
def allnewphotos(request):
    context_map = get_base_context_map(request)
    new_photos=Photo.objects.all().filter(show_type='s').\
        order_by("-create_date")
    #context_map['new_photos']=new_photos
    return object_list(request,
                       new_photos,
                       paginate_by=25,
                       template_name='allnewphotos.html',
                       extra_context=context_map,
                       allow_empty=True)
示例#12
0
def draftbox(request):
    user = request.user
    context_map=get_base_context_map(request)    
    send_msgs=user.send_msgs.all().filter(type='d').\
        order_by("-modification_date")
    return object_list(request,
                       send_msgs,
                       paginate_by=99999,
                       template_name='msgbox/draftbox.html',
                       extra_context=context_map,
                       allow_empty=True)
示例#13
0
def allrecommends(request):
    context_map=get_base_context_map(request)
    recommend_photos=RecommendPhoto.objects.all().\
        order_by("-create_date")
    #context_map['recommend_photos']=recommend_photos
    return object_list(request,
                       recommend_photos,
                       paginate_by=25,
                       template_name='allrecommend.html',
                       extra_context=context_map,
                       allow_empty=True)
示例#14
0
def allcomments(request):
    context_map = get_base_context_map(request)
    comments = PhotoComment.objects.all().filter(show_type='s').\
        order_by("-create_date")
    #context_map['comments']=comments
    return object_list(request,
                       comments,
                       paginate_by=25,
                       template_name='allcomments.html',
                       extra_context=context_map,
                       allow_empty=True)
示例#15
0
def signup(request, next_page=None):
    context_map = get_base_context_map(request)
    form = SignupForm()
    if request.POST:
        form = SignupForm(request.POST)
        if form.is_valid():
            user_obj = form.save()
            from django.contrib import auth
            auth.login(request, user_obj)
            return HttpResponseRedirect(next_page or '/')
    context_map['form'] = form
    return render_to_response('userpanel/signup.html', context_map)
示例#16
0
def check(request, id):
    """
    确认图片(添加/编辑后)
    """
    photo=get_object_or_404(Photo, pk=id)
    user = request.user
    if photo.show_type=='h' and not is_superuser(user):
        raise Http404
    context_map=get_base_context_map(request)
    context_map['photo']=photo
    return render_to_response('photos/check.html',
        context_map)
示例#17
0
文件: views.py 项目: itssiva/oldphoto
def signup(request, next_page=None):
    context_map = get_base_context_map(request)
    form = SignupForm()
    if request.POST:
        form = SignupForm(request.POST)
        if form.is_valid():
            user_obj = form.save()
            from django.contrib import auth

            auth.login(request, user_obj)
            return HttpResponseRedirect(next_page or "/")
    context_map["form"] = form
    return render_to_response("userpanel/signup.html", context_map)
示例#18
0
def outbox(request):
    user = request.user
    context_map=get_base_context_map(request)    
    send_msgs=user.send_msgs.all().filter(type='s').\
        order_by("-modification_date")
    if request.POST:
        ids=request.POST.getlist('ids')
        remove_msgs(ids, user)
    return object_list(request,
                       send_msgs,
                       paginate_by=99999,
                       template_name='msgbox/outbox.html',
                       extra_context=context_map,
                       allow_empty=True)
示例#19
0
def index(request):
    context_map = get_base_context_map(request)
    hot_photos=Photo.objects.all().filter(show_type='s').\
        order_by("-view_count")[:8]
    context_map['hot_photos'] = hot_photos
    new_photos=Photo.objects.all().filter(show_type='s').\
        order_by("-create_date")[:8]
    context_map['new_photos'] = new_photos
    recommend_photos=RecommendPhoto.objects.all().\
        order_by("-create_date")[:4]
    context_map['recommend_photos'] = recommend_photos
    from oldphoto.tag.views import list_tags
    context_map['side_tags'] = list_tags()
    return render_to_response('index.html', context_map)
示例#20
0
def edit(request):
    context_map = get_base_context_map(request)
    user = request.user
    form = EditForm(user.get_profile().__dict__)
    if request.POST:
        form = EditForm(request.POST)
        if form.is_valid():
            data = form.cleaned_data
            user.get_profile().gender = data['gender']
            user.get_profile().blog = data['blog']
            user.get_profile().intro = data['intro']
            user.get_profile().save()
            return HttpResponseRedirect('/space/')
    context_map['form'] = form
    return render_to_response('userpanel/edit.html', context_map)
示例#21
0
文件: views.py 项目: itssiva/oldphoto
def edit(request):
    context_map = get_base_context_map(request)
    user = request.user
    form = EditForm(user.get_profile().__dict__)
    if request.POST:
        form = EditForm(request.POST)
        if form.is_valid():
            data = form.cleaned_data
            user.get_profile().gender = data["gender"]
            user.get_profile().blog = data["blog"]
            user.get_profile().intro = data["intro"]
            user.get_profile().save()
            return HttpResponseRedirect("/space/")
    context_map["form"] = form
    return render_to_response("userpanel/edit.html", context_map)
示例#22
0
def index(request):
    context_map=get_base_context_map(request)
    hot_photos=Photo.objects.all().filter(show_type='s').\
        order_by("-view_count")[:8]
    context_map['hot_photos']=hot_photos
    new_photos=Photo.objects.all().filter(show_type='s').\
        order_by("-create_date")[:8]
    context_map['new_photos']=new_photos
    recommend_photos=RecommendPhoto.objects.all().\
        order_by("-create_date")[:4]
    context_map['recommend_photos']=recommend_photos
    from oldphoto.tag.views import list_tags
    context_map['side_tags']=list_tags()
    return render_to_response('index.html',
            context_map)
示例#23
0
def updatepswd(request, next_page=None):
    """
    修改密码
    """
    context_map = get_base_context_map(request)
    next_page = '/'
    u = request.user
    form = UpdatePswdForm()
    if request.POST:
        form = UpdatePswdForm(request.POST, u)
        if form.is_valid():
            u.set_password(form.cleaned_data['new_pswd'])
            u.save()
            return HttpResponseRedirect('/space/')
    context_map['form'] = form
    return render_to_response('userpanel/updatepswd.html', context_map)
示例#24
0
def reply_message(request, msg_id):
    user = request.user
    context_map=get_base_context_map(request)    
    msg=get_object_or_404(Message, pk=msg_id)
    if msg.rec_user!=user and msg.send_user!=user:
        return HttpResponseRedirect('/msgbox/inbox/')    
    context_map['to_user']=msg.send_user
    context_map['title']='RE:'+msg.title
    #friends=get_friends(user)
    form=ComposeMessageForm(\
        {'title':'RE:'+msg.title, 'rec_user': msg.send_user.id,\
        'content':get_reply_message(msg)},\
        friends=(msg.send_user,))
    context_map['form']=form
    return render_to_response('msgbox/compose_message.html',
        context_map)
示例#25
0
文件: views.py 项目: itssiva/oldphoto
def updatepswd(request, next_page=None):
    """
    修改密码
    """
    context_map = get_base_context_map(request)
    next_page = "/"
    u = request.user
    form = UpdatePswdForm()
    if request.POST:
        form = UpdatePswdForm(request.POST, u)
        if form.is_valid():
            u.set_password(form.cleaned_data["new_pswd"])
            u.save()
            return HttpResponseRedirect("/space/")
    context_map["form"] = form
    return render_to_response("userpanel/updatepswd.html", context_map)
示例#26
0
def view_photo(request, id):
    """
    查看图片
    """
    photo = get_object_or_404(Photo, pk=id)
    user = request.user
    if photo.show_type == 'h' and not is_superuser(user):
        raise Http404
    context_map = get_base_context_map(request)
    #TODO 评论翻页
    comments = photo.photocomment_set.all()
    if not is_superuser(user):
        comments = comments.filter(show_type='s')
    user_s_other_photo = photo.user.photo_set.all()
    if not is_superuser(user):
        user_s_other_photo = user_s_other_photo.filter(show_type='s')
    user_s_other_photo = user_s_other_photo.order_by("-create_date")[0:8]
    form = PhotoCommentForm()
    if request.method == 'POST':
        """
        添加评论
        """
        #TODO 登录判断
        if user.is_anonymous():
            return HttpResponseRedirect('/photos/%s/#beginComment' % id)
        form = PhotoCommentForm(request.POST, photo=photo, author=user)
        if form.is_valid():
            form.save()
        return HttpResponseRedirect('/photos/%s/#beginComment' % id)
    else:
        photo.view_count = photo.view_count + 1
        photo.save()
    context_map['form'] = form
    context_map['photo'] = photo
    context_map['user_s_other_photo'] = user_s_other_photo
    context_map['comments'] = comments
    context_map['user'] = user
    #TODO 查看图片是否已经收藏过了
    context_map['has_collection'] = get_count(
        """
    select count(*) from
    userpanel_collectionphoto uc
    where uc.photo_id=%s and uc.user_id=%s
    """, [photo.id, user.id])
    if user == photo.user or is_superuser(user):
        context_map['can_edit'] = True
    return render_to_response('photos/view_photo.html', context_map)
示例#27
0
def view_photo(request, id):
    """
    查看图片
    """
    photo=get_object_or_404(Photo, pk=id)
    user = request.user
    if photo.show_type=='h' and not is_superuser(user):
        raise Http404
    context_map=get_base_context_map(request)
    #TODO 评论翻页
    comments=photo.photocomment_set.all()
    if not is_superuser(user):
        comments=comments.filter(show_type='s')
    user_s_other_photo = photo.user.photo_set.all()
    if not is_superuser(user):
        user_s_other_photo = user_s_other_photo.filter(show_type='s')
    user_s_other_photo = user_s_other_photo.order_by("-create_date")[0:8]
    form = PhotoCommentForm()
    if request.method == 'POST':
        """
        添加评论
        """
        #TODO 登录判断
        if user.is_anonymous():
            return HttpResponseRedirect('/photos/%s/#beginComment' % id)
        form = PhotoCommentForm(request.POST,photo=photo,author=user)
        if form.is_valid():
            form.save()
        return HttpResponseRedirect('/photos/%s/#beginComment' % id)
    else:
        photo.view_count=photo.view_count+1
        photo.save()
    context_map['form']=form
    context_map['photo']=photo
    context_map['user_s_other_photo']=user_s_other_photo
    context_map['comments']=comments
    context_map['user']=user
    #TODO 查看图片是否已经收藏过了
    context_map['has_collection']=get_count("""
    select count(*) from
    userpanel_collectionphoto uc
    where uc.photo_id=%s and uc.user_id=%s
    """, [photo.id, user.id])
    if user==photo.user or is_superuser(user):
        context_map['can_edit']=True
    return render_to_response('photos/view_photo.html', context_map)
示例#28
0
def upload(request):
    """
    上传图片
    """
    user = request.user
    form = PhotoForm()
    context_map = get_base_context_map(request)
    if request.POST:
        form = PhotoForm(request.POST, request.FILES, user)
        if form.is_valid():
            photo = form.save()
            if photo == None:
                context_map['form'] = form
                return render_to_response('photos/upload.html', context_map)
            return HttpResponseRedirect('/photos/check/%s/' % photo.id)
    context_map['form'] = form
    return render_to_response('photos/upload.html', context_map)
示例#29
0
def upload(request):
    """
    上传图片
    """
    user = request.user
    form = PhotoForm()
    context_map=get_base_context_map(request)
    if request.POST:
        form = PhotoForm(request.POST, request.FILES, user)
        if form.is_valid():
            photo=form.save()
            if photo==None:
                context_map['form']=form
                return render_to_response('photos/upload.html',
                    context_map)
            return HttpResponseRedirect('/photos/check/%s/' % photo.id)
    context_map['form']=form
    return render_to_response('photos/upload.html',
        context_map)
示例#30
0
def init_context(request, user_id=0, context_map={}):
    context_map = get_base_context_map(request)
    user = request.user
    context_map['user'] = user
    view_user = user
    if user_id:
        view_user = User.objects.get(pk=user_id)
    context_map['view_user'] = view_user
    if user.id == view_user.id:
        context_map['is_self'] = True
        context_map['r_c'] = PhotoComment.objects.extra(
            params=[user.id],
            tables=['photos_photo'],
            where=['photo_id=photos_photo.id and photos_photo.user_id=%s'])[:5]
    else:
        try:
            friend = Friend.objects.get(user=user, friend=view_user)
            context_map['friend'] = friend
        except:
            pass
    return context_map, user, view_user
示例#31
0
def init_context(request, user_id=0, context_map={}):
    context_map=get_base_context_map(request)
    user = request.user
    context_map['user'] = user
    view_user = user
    if user_id:
        view_user = User.objects.get(pk=user_id)
    context_map['view_user'] = view_user
    if user.id==view_user.id:
        context_map['is_self']=True
        context_map['r_c'] = PhotoComment.objects.extra(
            params=[user.id],
            tables=['photos_photo'],
            where=['photo_id=photos_photo.id and photos_photo.user_id=%s'])[:5]
    else:
        try:
            friend=Friend.objects.get(user=user,friend=view_user)
            context_map['friend']=friend
        except:
            pass
    return context_map, user, view_user
示例#32
0
def edit(request, id):
    photo = get_object_or_404(Photo, pk=id)
    user = request.user
    if photo.user != user:
        return HttpResponseRedirect('/photos/check/%s/' % photo.id)
    context_map = get_base_context_map(request)
    data = photo.__dict__
    from oldphoto.utils.html2text import html2text
    data['descn'] = html2text(photo.descn)
    data['txt_tags'] = photo.get_txt_tags()
    form = PhotoForm(data=data)
    if request.POST:
        form = PhotoForm(request.POST, request.FILES, user, photo)
        if form.is_valid():
            photo = form.save()
            if photo == None:
                context_map['form'] = form
                return render_to_response('photos/edit.html', context_map)
            return HttpResponseRedirect('/photos/check/%s/' % photo.id)
    context_map['form'] = form
    context_map['photo'] = photo
    return render_to_response('photos/edit.html', context_map)
示例#33
0
def edit(request, id):
    photo=get_object_or_404(Photo, pk=id)
    user = request.user
    if photo.user!=user:
        return HttpResponseRedirect('/photos/check/%s/' % photo.id)
    context_map=get_base_context_map(request)
    data=photo.__dict__
    from oldphoto.utils.html2text import html2text
    data['descn']=html2text(photo.descn)
    data['txt_tags']=photo.get_txt_tags()
    form = PhotoForm(data=data)
    if request.POST:
        form = PhotoForm(request.POST, request.FILES, user, photo)
        if form.is_valid():
            photo=form.save()
            if photo==None:
                context_map['form']=form
                return render_to_response('photos/edit.html',
                    context_map)
            return HttpResponseRedirect('/photos/check/%s/' % photo.id)
    context_map['form']=form
    context_map['photo']=photo
    return render_to_response('photos/edit.html',
        context_map)
示例#34
0
def index(request, tag_id=None):
    """
    显示指定tag的照片
    """
    tag = None
    context_map = get_base_context_map(request)
    if not tag_id:
        photos = Photo.objects.all().order_by("-modification_date")
    else:
        try:
            tag = Tag.objects.get(pk=tag_id)
        except:
            pass  #TODO 转到出错页面
        photos=tag.photo_set.all().filter(show_type='s').\
            order_by("-modification_date")
    photos = photos
    context_map['tag'] = tag
    context_map['side_tags'] = list_tags()
    return object_list(request,
                       photos,
                       paginate_by=20,
                       template_name='tags/index.html',
                       extra_context=context_map,
                       allow_empty=True)
示例#35
0
def index(request, tag_id=None):
    """
    显示指定tag的照片
    """
    tag=None
    context_map=get_base_context_map(request)
    if not tag_id:
        photos=Photo.objects.all().order_by("-modification_date")
    else:
        try:
            tag=Tag.objects.get(pk=tag_id)
        except:
            pass#TODO 转到出错页面
        photos=tag.photo_set.all().filter(show_type='s').\
            order_by("-modification_date")
    photos=photos
    context_map['tag']=tag
    context_map['side_tags']=list_tags()
    return object_list(request,
                       photos,
                       paginate_by=20,
                       template_name='tags/index.html',
                       extra_context=context_map,
                       allow_empty=True)
示例#36
0
def compose_message(request, to_user_id=None):
    user = request.user
    context_map=get_base_context_map(request)
    friends=None
    if to_user_id:
        to_user=User.objects.get(pk=to_user_id)
        context_map['to_user']=to_user
        friends=((to_user.id, to_user.username),)
    context_map['user']=user
    if not friends:
        friends=get_friends(user)
    form=ComposeMessageForm(friends=friends)
    if request.POST:
        form = ComposeMessageForm(request.POST,friends,user)
        if form.is_valid():
            if request.POST['action']=='save':
                form.save_draft()
                return HttpResponseRedirect('/msgbox/draftbox/')
            if request.POST['action']=='send':
                form.send()
                return HttpResponseRedirect('/msgbox/outbox/')
    context_map['form']=form
    return render_to_response('msgbox/compose_message.html',
        context_map)