Example #1
0
def user_upload_avatar(request, extra_context=None,
                       upload_form=UploadAvatarForm, *args, **kwargs):
    if extra_context is None:
        extra_context = {}
    avatar, avatars = _get_avatars(request.user)
    upload_avatar_form = upload_form(request.POST or None,
                                     request.FILES or None,
                                     user=request.user)

    if request.method == "POST" and 'avatar' in request.FILES:
        if upload_avatar_form.is_valid():
            avatar = Avatar(user=request.user, primary=True)
            image_file = request.FILES['avatar']
            avatar.avatar.save(image_file.name, image_file)
            avatar.save()
            messages.success(request, "Successfully uploaded a new avatar.")

            # Save avatar into user_profile
            user_profile = request.user.profile
            user_profile.avatar = avatar
            user_profile.save()
            return HttpResponseRedirect(reverse('user:profile', args=(request.user.id, )))
    context = {
        'avatar': avatar,
        'avatars': avatars,
        'upload_avatar_form': upload_avatar_form,
    }
    context.update(extra_context)
    return render(request, 'vnoiusers/user_upload_avatar.html', context)
Example #2
0
def delete_avatar_js(request):
    '''
    Delete avatar image
    '''
    response = {}
    status = 405
    if request.is_ajax() and request.method == 'POST':
        from avatar.models import Avatar
        from avatar import views as avatarviews
        from avatar.forms import DeleteAvatarForm
        from avatar.signals import avatar_updated
        avatar, avatars = avatarviews._get_avatars(request.user)
        if avatar is None :
            response = 'No avatar exists'
        else:
            aid = avatar.id
            for a in avatars:
                if a.id == aid :
                    a.primary = True
                    a.save()
                    avatar_updated.send(sender=Avatar, user=request.user, avatar=avatar)
                    break
            Avatar.objects.filter(pk=aid).delete()
            response['avatar'] = accountutil.get_user_avatar_url(request.user)
            status = 200
    return HttpResponse(
        simplejson.dumps(response),
        content_type = 'application/json; charset=utf8',
        status=status
    )
Example #3
0
def upload_avatar_js(request):
    '''
    Upload avatar image
    '''
    response = {}
    status = 405
    if request.is_ajax() and request.method == 'POST':

        avatar, avatars = avatarviews._get_avatars(request.user)
        upload_avatar_form = UploadAvatarForm(
            None,
            request.FILES,
            user=request.user
        )
        if upload_avatar_form.is_valid():
            avatar = Avatar(
                user=request.user,
                primary=True,
            )
            image_file = request.FILES['avatar']
            avatar.avatar.save(image_file.name, image_file)
            avatar.save()
            avatar_updated.send(
                sender=Avatar,
                user=request.user,
                avatar=avatar
            )
            response['avatar'] = userutil.get_user_avatar_url(request.user)
            status = 200
    return JsonResponse(
        response,
        status=status
    )
Example #4
0
def upload_avatar_js(request):
    '''
    Upload avatar image
    '''
    response = {}
    status = 405
    if request.is_ajax() and request.method == 'POST':
        from avatar.models import Avatar
        from avatar import views as avatarviews
        from avatar.forms import UploadAvatarForm
        from avatar.signals import avatar_updated
        avatar, avatars = avatarviews._get_avatars(request.user)
        upload_avatar_form = UploadAvatarForm(None, request.FILES, user=request.user)
        if upload_avatar_form.is_valid():
            avatar = Avatar(
                user = request.user,
                primary = True,
            )
            image_file = request.FILES['avatar']
            avatar.avatar.save(image_file.name, image_file)
            avatar.save()
            avatar_updated.send(sender=Avatar, user=request.user, avatar=avatar)
            response['avatar'] = accountutil.get_user_avatar_url(request.user)
            status = 200
    return HttpResponse(
        simplejson.dumps(response),
        content_type = 'application/json; charset=utf8',
        status=status
    )
Example #5
0
def delete_avatar(request):
    '''
    Delete avatar image
    '''
    response = {}
    status = 405
    if request.is_ajax() and request.method == 'POST':
        avatar, avatars = avatarviews._get_avatars(request.user)
        if avatar is None:
            response['error'] = 'User has no avatar'
        else:
            aid = avatar.id
            for a in avatars:
                if a.id == aid:
                    a.primary = True
                    a.save()
                    avatar_updated.send(sender=Avatar,
                                        user=request.user,
                                        avatar=avatar)
                    break
            Avatar.objects.filter(pk=aid).delete()
            response['avatar'] = userutil.get_user_avatar_url(
                request.user)['url']
            status = 200
    return JsonResponse(response, status=status)
Example #6
0
def AvatarAdd(request,
              extra_context=None,
              next_override=None,
              upload_form=UploadAvatarForm,
              *args,
              **kwargs):
    if extra_context is None:
        extra_context = {}
    avatar, avatars = _get_avatars(request.user)
    upload_avatar_form = upload_form(request.POST or None,
                                     request.FILES or None,
                                     user=request.user)
    if request.method == 'POST' and 'avatar' in request.FILES:
        if upload_avatar_form.is_valid():
            avatar = Avatar(user=request.user, primary=True)
            image_file = request.FILES['avatar']
            avatar.avatar.save(image_file.name, image_file)
            avatar.save()
            invalidate_cache(request.user)
            messages.success(request, _("Successfully uploaded a new avatar."))
            avatar_updated.send(sender=Avatar,
                                user=request.user,
                                avatar=avatar)
            return render(request, 'auth/avatar_change.html')
    context = {
        'avatar': avatar,
        'avatars': avatars,
        'upload_avatar_form': upload_avatar_form,
        'next': next_override,
    }
    context.update(extra_context)
    template_name = 'auth/avatar_add.html'
    return render(request, template_name, context)
Example #7
0
def upload_avatar_js(request):
    '''
    Upload avatar image
    '''
    response = {}
    status = 405
    if request.is_ajax() and request.method == 'POST':
        from avatar.models import Avatar
        from avatar import views as avatarviews
        from avatar.forms import UploadAvatarForm
        from avatar.signals import avatar_updated
        avatar, avatars = avatarviews._get_avatars(request.user)
        upload_avatar_form = UploadAvatarForm(None,
                                              request.FILES,
                                              user=request.user)
        if upload_avatar_form.is_valid():
            avatar = Avatar(
                user=request.user,
                primary=True,
            )
            image_file = request.FILES['avatar']
            avatar.avatar.save(image_file.name, image_file)
            avatar.save()
            avatar_updated.send(sender=Avatar,
                                user=request.user,
                                avatar=avatar)
            response['avatar'] = accountutil.get_user_avatar_url(request.user)
            status = 200
    return HttpResponse(simplejson.dumps(response),
                        content_type='application/json; charset=utf8',
                        status=status)
Example #8
0
def delete_avatar_js(request):
    '''
    Delete avatar image
    '''
    response = {}
    status = 405
    if request.is_ajax() and request.method == 'POST':
        from avatar.models import Avatar
        from avatar import views as avatarviews
        from avatar.forms import DeleteAvatarForm
        from avatar.signals import avatar_updated
        avatar, avatars = avatarviews._get_avatars(request.user)
        if avatar is None:
            response = 'No avatar exists'
        else:
            aid = avatar.id
            for a in avatars:
                if a.id == aid:
                    a.primary = True
                    a.save()
                    avatar_updated.send(sender=Avatar,
                                        user=request.user,
                                        avatar=avatar)
                    break
            Avatar.objects.filter(pk=aid).delete()
            response['avatar'] = accountutil.get_user_avatar_url(request.user)
            status = 200
    return HttpResponse(simplejson.dumps(response),
                        content_type='application/json; charset=utf8',
                        status=status)
Example #9
0
def edit_name(request):
    context = {}
    if not request.user is None:
        full_name = request.user.first_name + ' ' + request.user.last_name
        avatar, avatars = _get_avatars(request.user)
        context = {
            'avatar': avatar,
            'avatars': avatars,
            'full_name:': full_name,
        }

        if request.method == 'POST':

            user = UserProfile.objects.get(user=request.user)
            if not request.POST['first_name'] is None:

                user.first_name = request.POST['first_name']
            if not request.POST['last_name'] is None:

                user.last_name = request.POST['last_name']
            user.save()

            context['full_name'] = full_name

            return redirect('/accounts/profile/', context)

    return render(request, 'user_profile/edit_name.html', context)
Example #10
0
def upload_avatar(request):
    '''
    Upload avatar image
    '''
    response = {}
    status = 405
    if request.is_ajax() and request.method == 'POST':

        avatar, avatars = avatarviews._get_avatars(request.user)
        upload_avatar_form = UploadAvatarForm(None,
                                              request.FILES,
                                              user=request.user)
        if upload_avatar_form.is_valid():
            avatar = Avatar(
                user=request.user,
                primary=True,
            )
            image_file = request.FILES['avatar']
            avatar.avatar.save(image_file.name, image_file)
            avatar.save()
            avatar_updated.send(sender=Avatar,
                                user=request.user,
                                avatar=avatar)
            response['avatar'] = userutil.get_user_avatar_url(
                request.user)['url']
            status = 200
    return JsonResponse(response, status=status)
Example #11
0
def delete_avatar_js(request):
    '''
    Delete avatar image
    '''
    response = {}
    status = 405
    if request.is_ajax() and request.method == 'POST':
        avatar, avatars = avatarviews._get_avatars(request.user)
        if avatar is None:
            response = 'No avatar exists'
        else:
            aid = avatar.id
            for a in avatars:
                if a.id == aid:
                    a.primary = True
                    a.save()
                    avatar_updated.send(
                        sender=Avatar,
                        user=request.user,
                        avatar=avatar
                    )
                    break
            Avatar.objects.filter(pk=aid).delete()
            response['avatar'] = userutil.get_user_avatar_url(request.user)
            status = 200
    return JsonResponse(
        response,
        status=status
    )
Example #12
0
 def post(self, *args, **kwargs):
     avatar, avatars = _get_avatars(self.request.user)
     if 'add' in self.request.POST and 'avatar' in self.request.FILES:
         upload_avatar_form = UploadAvatarForm(self.request.POST,
                                               self.request.FILES,
                                               user=self.request.user)
         if upload_avatar_form.is_valid():
             avatar = Avatar(user=self.request.user, primary=True)
             image_file = self.request.FILES['avatar']
             avatar.avatar.save(image_file.name, image_file)
             avatar.save()
             messages.success(self.request,
                              'Successfully uploaded a new avatar.')
             avatar_updated.send(sender=Avatar,
                                 user=self.request.user,
                                 avatar=avatar)
         return HttpResponseRedirect(reverse('avatar_change'))
     elif 'change' in self.request.POST:
         primary_avatar_form = PrimaryAvatarForm(self.request.POST,
                                                 user=self.request.user,
                                                 avatars=avatars)
         if 'choice' in self.request.POST and primary_avatar_form.is_valid(
         ):
             avatar = Avatar.objects.get(
                 id=primary_avatar_form.cleaned_data['choice'])
             avatar.primary = True
             avatar.save()
             avatar_updated.send(sender=Avatar,
                                 user=self.request.user,
                                 avatar=avatar)
             messages.success(self.request,
                              'Successfully updated your avatar.')
         return HttpResponseRedirect(reverse('avatar_change'))
     elif 'delete' in self.request.POST:
         delete_avatar_form = PrimaryAvatarForm(self.request.POST,
                                                user=self.request.user,
                                                avatars=avatars)
         if delete_avatar_form.is_valid():
             ids = delete_avatar_form.cleaned_data['choice']
             if six.text_type(
                     avatar.id) in ids and avatars.count() > len(ids):
                 for a in avatars:
                     if six.text_type(a.id) not in ids:
                         a.primary = True
                         a.save()
                         avatar_updated.send(sender=Avatar,
                                             user=self.request.user,
                                             avatar=avatar)
                         break
             Avatar.objects.filter(id__in=ids).delete()
             messages.success(self.request,
                              'Selected avatar successfully deleted.')
         return HttpResponseRedirect(reverse('avatar_change'))
     return HttpResponseRedirect(reverse('avatar_change'))
Example #13
0
def show_profile(request):
    if not request.user.is_authenticated() is None:
        user = UserProfile.objects.get(user=request.user)
        full_name = user.first_name + ' ' + user.last_name + ' '
        avatar, avatars = _get_avatars(request.user)
        context = {
            'avatar': avatar,
            'avatars': avatars,
            'full_name': full_name,
        }
        return render(request, 'user_profile/profile.html', context)
    else:
        redirect('/accounts/login/')
Example #14
0
def upload_avatar(request):
    if not request.user.is_authenticated() is None:
        avatar, avatars = _get_avatars(request.user)
        context = {
            'avatar': avatar,
            'avatars': avatars,
        }
    if request.method == 'POST':
        if not avatar is None:
            Avatar.objects.filter(id__in=[avatar.id]).delete()
        return add(request)
    else:
        return HttpResponse('404')
Example #15
0
def AvatarChange(request,
                 extra_context=None,
                 next_override=None,
                 upload_form=UploadAvatarForm,
                 primary_form=PrimaryAvatarForm,
                 *args,
                 **kwargs):
    if extra_context is None:
        extra_context = {}

    avatar, avatars = _get_avatars(request.user)
    if avatar:
        kwargs = {'initial': {'choice': avatar.id}}
    else:
        kwargs = {}
    upload_avatar_form = upload_form(user=request.user, **kwargs)
    primary_avatar_form = primary_form(request.POST or None,
                                       user=request.user,
                                       avatars=avatars,
                                       **kwargs)

    if request.method == 'POST':
        updated = False
        if 'choice' in request.POST and primary_avatar_form.is_valid():
            avatar = Avatar.objects.get(
                id=primary_avatar_form.cleaned_data['choice'])
            avatar.primary = True
            avatar.save()
            updated = True
            invalidate_cache(request.user)
            messages.success(request, _("Successfully updated your avatar."))
        if updated:
            avatar_updated.send(sender=Avatar,
                                user=request.user,
                                avatar=avatar)
        return render(request, 'auth/avatar_change.html')

    context = {
        'avatar': avatar,
        'avatars': avatars,
        'upload_avatar_form': upload_avatar_form,
        'primary_avatar_form': primary_avatar_form,
        'next': next_override
    }
    context.update(extra_context)
    template_name = 'auth/avatar_change.html'
    return render(request, template_name, context)
Example #16
0
def change(request,
           extra_context=None,
           next_override=None,
           upload_form=UploadAvatarForm,
           primary_form=PrimaryAvatarForm,
           *args,
           **kwargs):
    if extra_context is None:
        extra_context = {}
    avatar, avatars = _get_avatars(request.user)
    if avatar:
        kwargs = {'initial': {'choice': avatar.id}}
    else:
        kwargs = {}
    upload_avatar_form = upload_form(user=request.user, **kwargs)
    primary_avatar_form = primary_form(request.POST or None,
                                       user=request.user,
                                       avatars=avatars,
                                       **kwargs)
    if request.method == "POST":
        updated = False
        if 'choice' in request.POST and primary_avatar_form.is_valid():
            avatar = Avatar.objects.get(
                id=primary_avatar_form.cleaned_data['choice'])
            avatar.primary = True
            avatar.save()
            updated = True
            invalidate_cache(request.user)
            messages.success(request, temp("成功更新头像"))
        if updated:
            avatar_updated.send(sender=Avatar,
                                user=request.user,
                                avatar=avatar)
        return redirect(next_override or _get_next(request))

    context = {
        'avatar': avatar,
        'avatars': avatars,
        'upload_avatar_form': upload_avatar_form,
        'primary_avatar_form': primary_avatar_form,
        'next': next_override or _get_next(request)
    }
    context.update(extra_context)
    return render(request, 'account/avatar/change.html', context)
Example #17
0
    def get_context_data(self, **kwargs):
        context = super(AvatarChangeView, self).get_context_data(**kwargs)
        avatar, avatars = _get_avatars(self.request.user)
        if avatar:
            avatar_kwargs = {'initial': {'choice': avatar.id}}
        else:
            avatar_kwargs = {}
        upload_avatar_form = UploadAvatarForm(None,
                                              None,
                                              user=self.request.user)
        primary_avatar_form = PrimaryAvatarForm(None,
                                                user=self.request.user,
                                                avatars=avatars,
                                                **avatar_kwargs)

        context.update({
            'avatar': avatar,
            'avatars': avatars,
            'upload_avatar_form': upload_avatar_form,
            'primary_avatar_form': primary_avatar_form,
        })
        return context
Example #18
0
def upload_avatar(request):
    """
    Upload avatar image
    """
    response = {}
    status = 405

    avatar, avatars = avatarviews._get_avatars(request.user)
    upload_avatar_form = UploadAvatarForm(None,
                                          request.FILES,
                                          user=request.user)
    if upload_avatar_form.is_valid():
        avatar = Avatar(
            user=request.user,
            primary=True,
        )
        image_file = request.FILES["avatar"]
        avatar.avatar.save(image_file.name, image_file)
        avatar.save()
        avatar_updated.send(sender=Avatar, user=request.user, avatar=avatar)
        response["avatar"] = request.user.avatar_url["url"]
        status = 200
    return JsonResponse(response, status=status)
Example #19
0
def delete_avatar(request):
    """
    Delete avatar image
    """
    response = {}
    status = 405
    avatar, avatars = avatarviews._get_avatars(request.user)
    if avatar is None:
        response["error"] = "User has no avatar"
    else:
        aid = avatar.id
        for a in avatars:
            if a.id == aid:
                a.primary = True
                a.save()
                avatar_updated.send(sender=Avatar,
                                    user=request.user,
                                    avatar=avatar)
                break
        Avatar.objects.filter(pk=aid).delete()
        response["avatar"] = request.user.avatar_url["url"]
        status = 200
    return JsonResponse(response, status=status)
Example #20
0
 def evaluate(self, user, *args, **kwargs):
     avatars = _get_avatars(user)
     if len(avatars) > 0:
         return True
     else:
         return False