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)
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()
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)
def create(request): context = {} if request.method == 'POST': form = GroupForm(request.POST, request.FILES) 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') 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() context['form'] = form return render(request, 'groups/create.html', context)