27 from django.contrib
import messages
28 from django.shortcuts
import render_to_response, redirect
29 from django.template
import RequestContext
30 from django.template.loader
import render_to_string
31 from django.utils.translation
import ugettext
as _
32 from django.views.decorators.csrf
import csrf_protect
34 from wi.commontags.templatetags.templatetags
import filesizeformatmb
35 from wi.forms.user
import HelpForm, PasswordChangeForm, AccountDataEdit
36 from wi.utils
import get_dict_from_list, messages_ajax
37 from wi.utils.decorators
import django_view, user_permission
38 from wi.utils.exceptions
import RestErrorException
39 from wi.utils.messages_ajax
import ajax_request
40 from wi.utils.messages_codes
import get_message
41 from wi.utils.states
import message_levels_reversed
42 from wi.utils.views
import prep_data
51 def change_cm(request, cm_id, success_url='mai_main'):
52 request.session[
'user'].cm_id = int(cm_id)
53 request.session.modified =
True
54 messages.success(request, _(
'Cluster Manager changed.'))
56 return redirect(request.META[
'HTTP_REFERER']
or success_url)
67 if request.method ==
'POST':
68 response =
prep_data(
'user/message/get_list/', request.session)
71 item[
'text'] =
get_message(item[
'code'], item[
'params'])
72 item[
'level'] = message_levels_reversed[item[
'level']]
73 return messages_ajax.success(response)
84 if request.method ==
'GET':
85 rest_data =
prep_data({
'user':
'user/user/get_my_data/',
86 'cms':
'guest/cluster/list_names/'},
88 user_data = rest_data[
'user']
90 users_cm =
get_dict_from_list(rest_data[
'cms'], user_data[
'default_cluster_id'], key=
'cluster_id')
92 raise Exception(
'User\'s default_cluster_id=%d is not a valid CM id.' % user_data[
'default_cluster_id'])
94 user_data[
'default_cluster_id'] = users_cm[
'name']
95 return messages_ajax.success(user_data)
107 rest_data =
prep_data({
'cms':
'guest/cluster/list_names/'}, request.session)
109 if request.method ==
'POST':
110 form = form_class(data=request.POST, rest_data=rest_data)
112 prep_data({
'user': (
'user/user/edit/', form.cleaned_data)}, request.session)
114 request.session[
'user'].email = form.cleaned_data[
'email']
115 request.session[
'user'].default_cluster_id = form.cleaned_data[
'default_cluster_id']
116 request.session.modified =
True
118 return messages_ajax.success(_(
'Account data edited.'))
120 form = form_class(data={
'email': request.session[
'user'].email,
121 'default_cluster_id': request.session[
'user'].default_cluster_id}, rest_data=rest_data)
123 return messages_ajax.success(render_to_string(template_name, {
'form': form,
125 'confirmation': _(
'Save')},
126 context_instance=RequestContext(request)),
138 if request.method ==
'GET':
139 quota =
prep_data(
'user/user/get_quota/', request.session)
146 return messages_ajax.success(quota)
156 def acc_password_change(request, template_name='account/password_change_form.html', password_change_form=PasswordChangeForm):
157 if request.method ==
"POST":
158 form = password_change_form(user=request.session[
'user'], data=request.POST)
160 new_password = form.cleaned_data[
'new_password1']
162 prep_data((
'user/user/set_password/', {
'new_password': new_password}), request.session)
163 except RestErrorException
as ex:
164 messages.error(request, ex.value)
167 request.session.modified =
True
168 return redirect(
'acc_password_change_done')
170 form = password_change_form(user=request.session[
'user'])
171 return render_to_response(template_name, {
'form': form}, context_instance=RequestContext(request))
180 def hlp_form(request, form_class=HelpForm, template_name='help/form.html'):
181 if request.method ==
'POST':
182 form = form_class(data=request.POST)
184 topic, issue, email = form.cleaned_data[
'topic'], form.cleaned_data[
'issue'], form.cleaned_data[
'email']
186 name = str(request.session.get(
'user', form.cleaned_data[
'firstlast']))
187 topic += _(
' from user:') + name +
', email: ' + email
188 dictionary = {
'issue': issue,
'topic': topic}
190 prep_data((
'user/user/send_issue/', dictionary), request.session)
192 return redirect(
'hlp_issue_error')
194 return redirect(
'hlp_issue_sent')
198 rest_data =
prep_data(
'guest/user/is_mailer_active/', request.session)
200 return render_to_response(template_name, dict({
'form': form}.items() + rest_data.items()),
201 context_instance=RequestContext(request))