def configure_email_settings(request):

  return_dict = {}
  url = "edit_email_settings.html"
  if request.method=="GET":
    d = mail.load_email_settings()
    if not d:
      form = admin_forms.ConfigureEmailForm()
    else:
      if d["tls"]:
        d["tls"] = True
      else:
        d["tls"] = False
      if d["email_alerts"]:
        d["email_alerts"] = True
      else:
        d["email_alerts"] = False
      form = admin_forms.ConfigureEmailForm(initial = {'email_server':d["server"], 'email_server_port':d["port"], 'tls':d["tls"], 'username':d["username"], 'email_alerts':d["email_alerts"], 'rcpt_list':d["rcpt_list"]})
  else:
    form = admin_forms.ConfigureEmailForm(request.POST)
    if form.is_valid():
      cd = form.cleaned_data
      d = {}
      if "email_alerts" in cd:
        d["email_alerts"] = cd["email_alerts"]
      else:
        d["email_alerts"] = False
      d["server"] = cd["email_server"]
      d["port"] = cd["email_server_port"]
      d["username"] = cd["username"]
      d["pswd"] = cd["pswd"]
      d["rcpt_list"] = cd["rcpt_list"]
      if "tls" in cd:
        d["tls"] = cd["tls"]
      else:
        d["tls"] = False
      #print "Saving : "
      #print d
      try:
        mail.save_email_settings(d)
      except Exception, e:
        iv_logging.debug("Exception when trying to save email settings : %s"%e)
        return django.http.HttpResponseRedirect("/show/email_settings?not_saved=1&err=%s"%str(e))

      ret = mail.send_mail(cd["email_server"], cd["email_server_port"], cd["username"], cd["pswd"], cd["tls"], cd["rcpt_list"], "Test email from FractalView", "This is a test email sent by the Fractal View system in order to confirm that your email settings are working correctly.")
      if ret:
        return django.http.HttpResponseRedirect("/show/email_settings?saved=1&err=%s"%ret)
      else:
        return django.http.HttpResponseRedirect("/show/email_settings?saved=1")
def configure_email_settings(request):

  try:
    return_dict = {}
    url = "edit_email_settings.html"
    if request.method=="GET":
      d, err = mail.load_email_settings()
      if err:
        raise Exception(err)
      if not d:
        form = admin_forms.ConfigureEmailForm()
      else:
        if d["tls"]:
          d["tls"] = True
        else:
          d["tls"] = False
        if d["email_alerts"]:
          d["email_alerts"] = True
        else:
          d["email_alerts"] = False
        form = admin_forms.ConfigureEmailForm(initial = {'email_server':d["server"], 'email_server_port':d["port"], 'tls':d["tls"], 'username':d["username"], 'email_alerts':d["email_alerts"], 'rcpt_list':d["rcpt_list"]})
    else:
      form = admin_forms.ConfigureEmailForm(request.POST)
      if form.is_valid():
        cd = form.cleaned_data
        d = {}
        if "email_alerts" in cd:
          d["email_alerts"] = cd["email_alerts"]
        else:
          d["email_alerts"] = False
        d["server"] = cd["email_server"]
        d["port"] = cd["email_server_port"]
        d["username"] = cd["username"]
        d["pswd"] = cd["pswd"]
        d["rcpt_list"] = cd["rcpt_list"]
        if "tls" in cd:
          d["tls"] = cd["tls"]
        else:
          d["tls"] = False
        #print "Saving : "
        #print d
        ret, err = mail.save_email_settings(d)
        if err:
          raise Exception(err)

        ret, err = mail.send_mail(cd["email_server"], cd["email_server_port"], cd["username"], cd["pswd"], cd["tls"], cd["rcpt_list"], "Test email from IntegralStor", "This is a test email sent by the IntegralStor system in order to confirm that your email settings are working correctly.")
        if err:
          raise Exception(err)
        if ret:
          return django.http.HttpResponseRedirect("/show/email_settings?saved=1&err=%s"%ret)
        else:
          return django.http.HttpResponseRedirect("/show/email_settings?saved=1")
    return_dict["form"] = form
    return django.shortcuts.render_to_response(url, return_dict, context_instance = django.template.context.RequestContext(request))
  except Exception, e:
    return_dict['base_template'] = "system_base.html"
    return_dict["page_title"] = 'Change email notification settings'
    return_dict['tab'] = 'email_tab'
    return_dict["error"] = 'Error changing email notification settings'
    return_dict["error_details"] = str(e)
    return django.shortcuts.render_to_response('logged_in_error.html', return_dict, context_instance = django.template.context.RequestContext(request))