manager: add upload from assets management page (#11491)
This commit is contained in:
parent
a652a983b6
commit
8f6e102720
|
@ -96,3 +96,7 @@ class PageEditExcludeFromNavigationForm(forms.ModelForm):
|
|||
|
||||
class SiteImportForm(forms.Form):
|
||||
site_json = forms.FileField(_('Site Export File'))
|
||||
|
||||
|
||||
class AssetUploadForm(forms.Form):
|
||||
upload = forms.FileField(label=_('File'))
|
||||
|
|
|
@ -0,0 +1,18 @@
|
|||
{% extends "combo/manager_base.html" %}
|
||||
{% load i18n %}
|
||||
|
||||
{% block appbar %}
|
||||
<h2>{% trans "Asset Upload" %}</h2>
|
||||
{% endblock %}
|
||||
|
||||
{% block content %}
|
||||
|
||||
<form method="post" enctype="multipart/form-data">
|
||||
{% csrf_token %}
|
||||
{{ form.as_p }}
|
||||
<div class="buttons">
|
||||
<button class="submit-button">{% trans "Upload" %}</button>
|
||||
<a class="cancel" href="{% url 'combo-manager-assets' %}">{% trans 'Cancel' %}</a>
|
||||
</div>
|
||||
</form>
|
||||
{% endblock %}
|
|
@ -3,6 +3,7 @@
|
|||
|
||||
{% block appbar %}
|
||||
<h2>{% trans 'Assets' %}</h2>
|
||||
<a href="{% url 'combo-manager-asset-upload' %}" rel="popup">{% trans 'Upload' %}</a>
|
||||
{% endblock %}
|
||||
|
||||
{% block breadcrumb %}
|
||||
|
|
|
@ -68,6 +68,7 @@ urlpatterns = [
|
|||
name='combo-manager-page-order'),
|
||||
url(r'^assets/$', views.assets, name='combo-manager-assets'),
|
||||
url(r'^assets/delete$', views.asset_delete, name='combo-manager-asset-delete'),
|
||||
url(r'^assets/upload/$', views.asset_upload, name='combo-manager-asset-upload'),
|
||||
url(r'^ckeditor/', include('ckeditor.urls')),
|
||||
]
|
||||
|
||||
|
|
|
@ -38,7 +38,8 @@ from combo import plugins
|
|||
|
||||
from .forms import (PageEditTitleForm, PageVisibilityForm, SiteImportForm,
|
||||
PageEditRedirectionForm, PageSelectTemplateForm, PageEditSlugForm,
|
||||
PageEditPictureForm, PageEditExcludeFromNavigationForm)
|
||||
PageEditPictureForm, PageEditExcludeFromNavigationForm,
|
||||
AssetUploadForm)
|
||||
|
||||
|
||||
class HomepageView(ListView):
|
||||
|
@ -428,6 +429,22 @@ class Assets(ListView):
|
|||
assets = Assets.as_view()
|
||||
|
||||
|
||||
class AssetUpload(FormView):
|
||||
form_class = AssetUploadForm
|
||||
template_name = 'combo/manager_asset_upload.html'
|
||||
success_url = reverse_lazy('combo-manager-assets')
|
||||
|
||||
def form_valid(self, form):
|
||||
# use native ckeditor view so it's available from ckeditor file/image
|
||||
# dialogs.
|
||||
ckeditor_upload_view = ckeditor.views.ImageUploadView()
|
||||
self.request.GET = {'CKEditorFuncNum': '-'} # hack
|
||||
ckeditor_upload_view.post(self.request)
|
||||
return super(AssetUpload, self).form_valid(form)
|
||||
|
||||
asset_upload = AssetUpload.as_view()
|
||||
|
||||
|
||||
class AssetDelete(TemplateView):
|
||||
template_name = 'combo/manager_asset_confirm_delete.html'
|
||||
|
||||
|
|
|
@ -572,14 +572,19 @@ def test_asset_management(app, admin_user):
|
|||
resp = app.get('/manage/assets/')
|
||||
assert 'have any asset yet.' in resp.body
|
||||
|
||||
filepath = os.path.join(settings.CKEDITOR_UPLOAD_PATH, 'test.png')
|
||||
pix = 'iVBORw0KGgoAAAANSUhEUgAAAAEAAAABAQAAAAA3bvkkAAAACklEQVQI12NoAAAAggCB3UNq9AAAAABJRU5ErkJggg=='
|
||||
default_storage.save(filepath, StringIO.StringIO(base64.decodestring(pix)))
|
||||
assert os.path.exists(default_storage.path(filepath))
|
||||
# test upload
|
||||
resp = app.get('/manage/assets/')
|
||||
resp = resp.click('Upload')
|
||||
resp.form['upload'] = Upload('test.png',
|
||||
base64.decodestring('iVBORw0KGgoAAAANSUhEUgAAAAEAAAABAQAAAAA3bvkkAAAACklEQVQI12NoAAAAggCB3UNq9AAAAABJRU5ErkJggg=='),
|
||||
'image/png')
|
||||
resp = resp.form.submit().follow()
|
||||
|
||||
# check file is now there
|
||||
resp = app.get('/manage/assets/')
|
||||
assert 'have any asset yet.' not in resp.body
|
||||
|
||||
# test deletion
|
||||
resp = resp.click('Delete')
|
||||
assert 'Are you sure you want to delete' in resp.body
|
||||
resp = resp.form.submit().follow()
|
||||
|
|
Loading…
Reference in New Issue