27 from django.template
import RequestContext
28 from django.template.defaultfilters
import force_escape
29 from django.template.loader
import render_to_string
30 from django.utils.translation
import ugettext
as _
31 from django.views.decorators.csrf
import csrf_protect
33 from common.states
import image_access
34 from wi.commontags.templatetags.templatetags
import filesizeformatmb
35 from wi.forms.system_image
import AddImageHttp
36 from wi.forms.user
import CopyToUserForm
37 from wi.utils
import messages_ajax
38 from wi.utils.decorators
import admin_cm_permission
39 from wi.utils.decorators
import django_view
40 from wi.utils.messages_ajax
import ajax_request
41 from wi.utils.states
import image_states_reversed
42 from wi.utils.views
import prep_data
53 if request.method ==
'GET':
54 rest_data =
prep_data({
'images_public': (
'admin_cm/system_image/get_list/', {
'access': image_access[
'public']}),
55 'images_private': (
'admin_cm/system_image/get_list/', {
'access': image_access[
'private']}),
56 'images_group': (
'admin_cm/system_image/get_list/', {
'access': image_access[
'group']})}, request.session)
58 for item
in rest_data[
'images_public']:
60 item[
'type'] =
'public'
61 item[
'stateName'] = image_states_reversed[item[
'state']]
63 list_images = [{
'name': unicode(_(
'Public:')),
'items': rest_data[
'images_public']}]
65 for item
in rest_data[
'images_private']:
67 item[
'type'] =
'private'
68 item[
'stateName'] = image_states_reversed[item[
'state']]
70 list_images.append({
'name': unicode(_(
'Private:')),
'items': rest_data[
'images_private']})
72 for group
in rest_data[
'images_group']:
73 for item
in group[
'images']:
75 item[
'type'] =
'group'
76 item[
'stateName'] = image_states_reversed[item[
'state']]
78 list_images.append({
'name': unicode(_(
'Group:')) +
' ' + group[
'name'],
'items': group[
'images']})
80 return messages_ajax.success(list_images)
92 rest_data =
prep_data({
'disk_controllers':
'user/system_image/get_disk_controllers/',
93 'video_devices':
'user/system_image/get_video_devices/',
94 'network_devices':
'user/system_image/get_network_devices/',
97 if request.method ==
'POST':
98 form = form_class(data=request.POST, rest_data=rest_data)
100 dictionary = form.cleaned_data
101 prep_data({
'images': (
'admin_cm/system_image/download/', dictionary)}, request.session)
103 return messages_ajax.success(_(
'You have successfully added an image.'))
105 form = form_class(rest_data=rest_data)
106 return messages_ajax.success(render_to_string(template_name, {
'form': form,
107 'confirmation': _(
'Create'),
109 context_instance=RequestContext(request)),
122 rest_data =
prep_data({
'users': (
'admin_cm/user/get_list/', {
'short':
True})}, request.session)
124 if request.method ==
'POST':
125 form = form_class(data=request.POST, files=request.FILES, rest_data=rest_data)
127 dictionary = form.cleaned_data
128 dictionary[
'src_image_id'] = int(id1)
129 dictionary[
'dest_user_id'] = int(dictionary[
'dest_user_id'])
131 prep_data((
'admin_cm/system_image/copy/', dictionary), request.session)
133 return messages_ajax.success(_(
"<b>%(desc)s</b> copied.") % {
'desc': force_escape(request.REQUEST.get(
'desc'))})
135 form = form_class(rest_data=rest_data)
136 return messages_ajax.success(render_to_string(template_name, {
'form': form,
137 'confirmation': _(
'Copy'),
138 'text': _(
'Select user:')},
139 context_instance=RequestContext(request)),