def news(request): new_items = models.NewsItem.objects.filter( content_type=request.model_content_type, object_id=request.site_type.pk).order_by('-posted') form = forms.NewsItemForm() new_file = None if 'delete' in request.POST: news_item_pk = request.POST.get('delete') item = get_object_or_404(models.NewsItem, pk=news_item_pk, content_type=request.model_content_type, object_id=request.site_type.pk) item.delete() return redirect(reverse('core_manager_news')) if request.POST: form = forms.NewsItemForm(request.POST) if request.FILES: uploaded_file = request.FILES.get('image_file') if request.model_content_type.name == 'journal': new_file = files.save_file_to_journal(request, uploaded_file, 'News Item', 'News Item', public=True) core_logic.resize_and_crop( new_file.journal_path(request.journal), [750, 324], 'middle') elif request.model_content_type.name == 'press': new_file = files.save_file_to_press(request, uploaded_file, 'News Item', 'News Item', public=True) core_logic.resize_and_crop(new_file.press_path(), [750, 324], 'middle') if form.is_valid(): new_item = form.save(commit=False) new_item.content_type = request.model_content_type new_item.object_id = request.site_type.pk new_item.posted_by = request.user new_item.posted = timezone.now() new_item.large_image_file = new_file new_item.save() return redirect(reverse('core_manager_news')) template = 'core/manager/news/index.html' context = { 'news_items': new_items, 'action': 'new', 'form': form, } return render(request, template, context)
def edit_news(request, news_pk): """ Allows an editor to edit an existing news item :param request: HttpRequest object :param news_pk: PK of an NewsItem object :return: HttpResponse object """ new_items = models.NewsItem.objects.filter(content_type=request.model_content_type, object_id=request.site_type.pk).order_by('-posted') news_item = get_object_or_404(models.NewsItem, pk=news_pk) form = forms.NewsItemForm(instance=news_item) new_file = None if 'delete_image' in request.POST: delete_image_id = request.POST.get('delete_image') file = get_object_or_404(core_models.File, pk=delete_image_id) if file.owner == request.user or request.user.is_staff: file.delete() messages.add_message(request, messages.SUCCESS, 'Image deleted') else: messages.add_message(request, messages.WARNING, 'Only the owner or staff can delete this image.') return redirect(reverse('core_manager_edit_news', kwargs={'news_pk': news_item.pk})) if request.POST: form = forms.NewsItemForm(request.POST, instance=news_item) if request.FILES: uploaded_file = request.FILES.get('image_file') if request.model_content_type.name == 'journal': new_file = files.save_file_to_journal(request, uploaded_file, 'News Item', 'News Item', public=True) core_logic.resize_and_crop(new_file.journal_path(request.journal), [750, 324], 'middle') elif request.model_content_type.name == 'press': new_file = files.save_file_to_press(request, uploaded_file, 'News Item', 'News Item', public=True) core_logic.resize_and_crop(new_file.press_path(), [750, 324], 'middle') if form.is_valid(): item = form.save(commit=False) if new_file: item.large_image_file = new_file item.save() return redirect(reverse('core_manager_news')) template = 'core/manager/news/index.html' context = { 'news_item': news_item, 'news_items': new_items, 'action': 'edit', 'form': form, } return render(request, template, context)
def index(request): if request.POST: file = request.FILES.get('press_logo') file = files.save_file_to_press(request, file, 'Press Logo', '') request.press.thumbnail_image = file request.press.save() return redirect(reverse('install_index')) template = 'install/index.html' context = {} return render(request, template, context)
def index(request): """ Dislays a form allowing a user to upload an image file. :param request: HttpRequest object :return: HttpResponse or if request.POST: HttpRedirect """ if request.POST: file = request.FILES.get('press_logo') file = files.save_file_to_press(request, file, 'Press Logo', '') request.press.thumbnail_image = file request.press.save() return redirect(reverse('install_index')) template = 'install/index.html' context = {} return render(request, template, context)
def save(self, commit=True): press = super(PressForm, self).save(commit=False) request = GlobalRequestMiddleware.get_current_request() file = self.cleaned_data.get('press_logo', None) if file: file = files.save_file_to_press(request, file, 'Press Logo', '') # Delete the old file from the disk if press.thumbnail_image: press.thumbnail_image.delete() press.thumbnail_image = file if commit: press.save() return press