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 common.states
import image_access, image_states
33 from wi.commontags.templatetags.templatetags
import filesizeformatmb
34 from wi.forms.system_image
import AddImageHttp
35 from wi.utils
import messages_ajax, parsing
36 from wi.utils.decorators
import django_view
37 from wi.utils.decorators
import user_permission
38 from wi.utils.messages_ajax
import ajax_request
39 from wi.utils.states
import image_states_reversed
40 from wi.utils.views
import prep_data
51 if request.method ==
'GET':
52 rest_data =
prep_data({
'images_private': (
'user/system_image/get_list/', {
'access': image_access[
'private']}),
53 'images_group': (
'user/system_image/get_list/', {
'access': image_access[
'group']})}, request.session)
55 for item
in rest_data[
'images_private']:
56 item[
'stateName'] = image_states_reversed[item[
'state']]
57 item[
'type'] =
'private'
60 group_list = [{
'name': unicode(_(
'Private')),
'items': rest_data[
'images_private']}]
62 for group
in rest_data[
'images_group']:
63 group_images_list = []
64 for item
in group[
'images']:
65 if item[
'user_id'] == request.session[
'user'].user_id:
66 item[
'stateName'] = image_states_reversed[item[
'state']]
68 item[
'type'] =
'group'
69 group_images_list.append(item)
71 group_list.append({
'name': unicode(_(
'Shared to group')) +
' ' + group[
'name'],
72 'items': group_images_list,
'group_id': group[
'group_id']})
74 return messages_ajax.success(group_list)
85 if request.method ==
'GET':
86 rest_data =
prep_data((
'user/system_image/get_list/', {
'access': image_access[
'public']}), request.session)
88 for item
in rest_data:
89 item[
'stateName'] = image_states_reversed[item[
'state']]
92 return messages_ajax.success(rest_data)
103 if request.method ==
'GET':
104 rest_data =
prep_data({
'own_groups':
'user/group/list_own_groups/',
105 'group_images': (
'user/system_image/get_list/', {
'access': image_access[
'group']})},
108 leader = parsing.parse_own_groups(rest_data)
111 for group
in rest_data[
'group_images']:
113 group_images_list = []
114 for item
in group[
'images']:
115 item[
'stateName'] = unicode(image_states_reversed[item[
'state']])
117 item[
'mine'] =
True if item[
'user_id'] == request.session[
'user'].user_id
else False
118 item[
'myGroup'] =
True if item[
'group_id']
in leader
else False
119 group_images_list.append(item)
121 group_list.append({
'name': group[
'name'],
'items': group_images_list,
'group_id': group[
'group_id']})
122 return messages_ajax.success(group_list)
134 rest_data =
prep_data({
'disk_controllers':
'user/system_image/get_disk_controllers/',
135 'video_devices':
'user/system_image/get_video_devices/',
136 'network_devices':
'user/system_image/get_network_devices/'},
139 if request.method ==
'POST':
140 form = form_class(data=request.POST, files=request.FILES, rest_data=rest_data)
142 dictionary = form.cleaned_data
144 prep_data((
'user/system_image/download/', dictionary), request.session)
145 return messages_ajax.success(_(
'Image upload started.'))
147 form = form_class(rest_data=rest_data)
148 return messages_ajax.success(render_to_string(template_name,
150 'confirmation': _(
'Add image'),
151 'text': _(
'Only RAW image format is supported at the moment. Please specify image parameters:')},
152 context_instance=RequestContext(request)),
168 if request.method ==
'GET':
169 rest_data =
prep_data({
'images_private': (
'user/system_image/get_list/', {
'access': image_access[
'private']}),
170 'images_public': (
'user/system_image/get_list/', {
'access': image_access[
'public']}),
171 'images_group': (
'user/system_image/get_list/', {
'access': image_access[
'group']})},
175 if img_type ==
'private' or img_type ==
'all':
176 for item
in rest_data[
'images_private']:
177 if item[
'state'] != image_states[
'ok']:
179 item[
'stateName'] = image_states_reversed[item[
'state']]
180 item[
'type'] = _(
'private')
182 list_images.append(item)
184 if img_type ==
'public' or img_type ==
'all':
185 for item
in rest_data[
'images_public']:
186 if item[
'state'] != image_states[
'ok']:
188 item[
'stateName'] = image_states_reversed[item[
'state']]
189 item[
'type'] = _(
'public')
191 list_images.append(item)
193 if img_type ==
'all':
194 for group
in rest_data[
'images_group']:
195 for item
in group[
'images']:
196 if item[
'state'] != image_states[
'ok']:
198 item[
'stateName'] = image_states_reversed[item[
'state']]
200 item[
'type'] = _(
'group ') + group[
'name']
201 list_images.append(item)
203 if img_type !=
'public' and img_type !=
'private' and img_type !=
'all':
204 for group
in rest_data[
'images_group']:
205 if (img_type == str(group[
'group_id'])):
206 for item
in group[
'images']:
207 if item[
'state'] != image_states[
'ok']:
209 item[
'stateName'] = image_states_reversed[item[
'state']]
211 item[
'type'] = _(
'group ') + group[
'name']
212 list_images.append(item)
214 if img_type ==
'private':
215 for group
in rest_data[
'images_group']:
216 for item
in group[
'images']:
217 if img_type ==
'private' and item[
'user_id'] == request.session[
'user'].user_id:
218 if item[
'state'] != image_states[
'ok']:
220 item[
'stateName'] = image_states_reversed[item[
'state']]
222 item[
'type'] = _(
'group ') + group[
'name']
223 list_images.append(item)
225 return messages_ajax.success(list_images)