Revision 5af5920c snf-cyclades-app/synnefo/ui/views.py

b/snf-cyclades-app/synnefo/ui/views.py
126 126
# extensions
127 127
ENABLE_GLANCE = getattr(settings, 'UI_ENABLE_GLANCE', True)
128 128
GLANCE_API_URL = getattr(settings, 'UI_GLANCE_API_URL', '/glance')
129
FEEDBACK_CONTACTS = getattr(settings, "FEEDBACK_CONTACTS", [])
130
FEEDBACK_EMAIL_FROM = settings.FEEDBACK_EMAIL_FROM
131 129
DIAGNOSTICS_UPDATE_INTERVAL = getattr(settings,
132 130
                'UI_DIAGNOSTICS_UPDATE_INTERVAL', 2000)
133 131

  
......
151 149
GROUPED_PUBLIC_NETWORK_NAME = getattr(settings, 'UI_GROUPED_PUBLIC_NETWORK_NAME', 'Internet')
152 150

  
153 151
USER_CATALOG_URL = getattr(settings, 'UI_USER_CATALOG_URL', '/user_catalogs')
152
FEEDBACK_POST_URL = getattr(settings, 'UI_FEEDBACK_POST_URL', '/feedback')
154 153
TRANSLATE_UUIDS = not getattr(settings, 'TRANSLATE_UUIDS', False)
155 154

  
156 155
def template(name, request, context):
......
177 176
               'current_lang': get_language() or 'en',
178 177
               'compute_api_url': json.dumps(COMPUTE_API_URL),
179 178
               'user_catalog_url': json.dumps(USER_CATALOG_URL),
179
               'feedback_post_url': json.dumps(FEEDBACK_POST_URL),
180 180
               'translate_uuids': json.dumps(TRANSLATE_UUIDS),
181 181
                # update interval settings
182 182
               'update_interval': UPDATE_INTERVAL,
......
186 186
               'update_interval_max': UPDATE_INTERVAL_MAX,
187 187
               'changes_since_alignment': CHANGES_SINCE_ALIGNMENT,
188 188
               'quotas_update_interval': QUOTAS_UPDATE_INTERVAL,
189
                # additional settings
190 189
               'image_icons': IMAGE_ICONS,
191 190
               'logout_redirect': LOGOUT_URL,
192 191
               'login_redirect': LOGIN_URL,
......
429 428

  
430 429
    return response
431 430

  
432
def feedback_submit(request):
433
    if not request.method == "POST":
434
        raise Http404
435

  
436
    # fill request object with astakos user information
437
    get_user(request, settings.ASTAKOS_URL)
438

  
439
    message = request.POST.get("feedback-msg")
440
    data = request.POST.get("feedback-data")
441
    if isinstance(request.user.get('email'), list):
442
        email = request.user.get('email')[0]
443
    else:
444
        email = request.user.get('email')
445

  
446
    # default to True (calls from error pages)
447
    allow_data_send = request.POST.get("feedback-submit-data", True)
448

  
449
    mail_subject = unicode(_("Feedback from synnefo application"))
450

  
451
    mail_context = {'message': message, 'data': data, 'email': email,
452
                    'allow_data_send': allow_data_send, 'request': request}
453
    mail_content = render_to_string("feedback_mail.txt", mail_context)
454

  
455
    send_mail(mail_subject, mail_content, FEEDBACK_EMAIL_FROM,
456
              dict(FEEDBACK_CONTACTS).values(), fail_silently=False)
457

  
458
    return HttpResponse('{"status":"send"}')

Also available in: Unified diff