27 from django.template
import RequestContext
28 from django.template.loader
import render_to_string
29 from django.utils.translation
import ugettext
as _
30 from django.views.decorators.csrf
import csrf_protect
32 from wi.commontags.templatetags.templatetags
import filesizeformatmb
33 from wi.forms.storage_image
import AddDiskForm, UploadDiskForm
34 from wi.utils
import messages_ajax, get_dict_from_list
35 from wi.utils.decorators
import django_view, user_permission
36 from wi.utils.messages_ajax
import ajax_request
37 from wi.utils.views
import prep_data
48 if request.method ==
'GET':
49 rest_data =
prep_data({
'disks':
'user/storage_image/get_list/',
50 'disk_controllers':
'user/storage_image/get_disk_controllers/'}, request.session)
52 for item
in rest_data[
'disks']:
54 item[
'bus'] =
get_dict_from_list(rest_data[
'disk_controllers'], item[
'disk_controller'])[
'name']
55 return messages_ajax.success(rest_data[
'disks'])
66 def res_ajax_add_disk(request, template_name='resources/ajax/add_disk.html', form_class=AddDiskForm):
67 rest_data =
prep_data({
'quota':
'user/user/get_quota/',
68 'supported_filesystems':
'user/storage_image/get_filesystems/',
69 'disk_controllers':
'user/storage_image/get_disk_controllers/'}, request.session)
71 quota = rest_data[
'quota']
73 if request.method ==
'POST':
74 form = form_class(request.POST, rest_data=rest_data)
76 dictionary = form.cleaned_data
78 prep_data({
'key': (
'user/storage_image/create/', dictionary)}, request.session)
79 return messages_ajax.success(_(
"Disk is being created."))
81 form = form_class(rest_data=rest_data)
83 return messages_ajax.success(render_to_string(template_name, {
'form': form,
84 'free': quota[
'storage'] - quota[
'used_storage']},
85 context_instance=RequestContext(request)),
98 rest_data =
prep_data({
'disk_controllers':
'user/storage_image/get_disk_controllers/'}, request.session)
100 if request.method ==
'POST':
101 form = form_class(data=request.POST, rest_data=rest_data)
103 dictionary = form.cleaned_data
105 prep_data({
'images': (
'user/storage_image/download/', dictionary)}, request.session)
106 return messages_ajax.success(_(
"Disk upload started."))
108 form = form_class(rest_data=rest_data)
109 return messages_ajax.success(render_to_string(template_name, {
'form': form,
110 'confirmation': _(
'Upload disk'),
111 'text': _(
'Only RAW image format is supported at the moment. Please specify disk parameters:')},
112 context_instance=RequestContext(request)),