示例#1
0
def group_settings(request, slug):
    context = {}
    try:
        group = Group.objects.get(slug=slug)
    except:
        raise Http404
    if request.user not in group.staff:
        raise PermissionDenied

    context['group'] = group
    if request.method == 'POST':
        form = GroupForm(request.POST, request.FILES, instance=group)
        if form.is_valid():
            group = form.save(commit=False)
            group.creator = request.user
            group.tags = form.cleaned_data['tags']
            if form.cleaned_data['logo']:
                path = handle_uploaded_file(request.FILES['logo'], 'uploads')
                old_path = group.logo
                if old_path:
                    delete_file(old_path)
                group.logo = path
            group.save()
            return HttpResponseRedirect(group.get_absolute_url())
        else:
            # Retain POST data if invalid
            data = get_post_data(request, *form.fields)
            form.initial = data
            #context['form'] = form
    else:
        form = GroupForm(instance=group)
        form.initial = get_initial_data(group, *form.fields)
        form.initial['tags'] = ','.join(form.initial['tags'])
    context['form'] = form
    return render(request, 'groups/group_settings.html', context)
示例#2
0
def save_social_avatar(url, user, social):
    """Save avatar from URL of social account"""
    params = {}
    if social == 'facebook':
        params['type'] = 'normal'
    f = requests.get(url, params=params).content
    fn = user.username + '.jpg'
    path = handle_uploaded_file(f, 'avatar', fn)
    old_path = user.avatar
    if old_path:
        delete_file(old_path)
    user.avatar = path
    user.save()
示例#3
0
def avatar(request):
    """Global portal: /accounts/avatar/"""
    context = {}
    if request.method == 'POST':
        form = FileUploadForm(request.POST, request.FILES)
        if form.is_valid():
            path = handle_uploaded_file(request.FILES['file'], 'avatar')
            old_path = request.user.avatar
            if old_path:
                delete_file(old_path)
            request.user.avatar = path
            request.user.save()
            return HttpResponseRedirect('/accounts/profile/')
    else:
        form = FileUploadForm()

    context['form'] = form
    return render(request, "accounts/avatar.html", context)