Commit 7c8fc6829f5de072825e1438a15a29c33cff3e67

Authored by Erik Zambom
1 parent 77d33269

Adding direct access to each settings tab through menu

app/templates/admin_settings.html
... ... @@ -17,32 +17,34 @@
17 17 </div>
18 18 {% endfor %}
19 19 <!-- Nav tabs -->
  20 +
20 21 <ul class="nav nav-tabs md-pills pills-ins" role="tablist">
  22 + {% if form.safe_conection.errors or form.host.errors or form.default_from_email.errors %}
  23 + <li class="nav-item">
  24 + <a class="nav-link {% if page == 'system' %}active{% endif %}" data-toggle="tab" href="#system" role="tab"><i class="fa fa-cog"></i> {% trans "System" %}</a>
  25 + </li>
  26 + <li class="nav-item">
  27 + <a class="nav-link {% if page == 'mail_sender' %}active{% endif %}" data-toggle="tab" href="#mail_sender" role="tab"><i class="fa fa-envelope"></i> {% trans "Mail Sender" %}</a>
  28 + </li>
  29 + {% else %}
  30 + <li class="nav-item">
  31 + <a class="nav-link {% if page == 'system' %}active{% endif %}" data-toggle="tab" href="#system" role="tab"><i class="fa fa-cog"></i> {% trans "System" %}</a>
  32 + <li class="nav-item">
  33 + <a class="nav-link {% if page == 'mail_sender' %}active{% endif %}" data-toggle="tab" href="#mail_sender" role="tab"><i class="fa fa-envelope"></i> {% trans "Mail Sender" %}</a>
  34 + </li>
  35 + {% endif %}
21 36 <li class="nav-item">
22   - {% if form.safe_conection.errors or form.host.errors or form.default_from_email.errors %}
23   - <a class="nav-link" data-toggle="tab" href="#panel1" role="tab"><i class="fa fa-cog"></i> {% trans "System" %}</a>
24   - </li>
25   - <li class="nav-item">
26   - <a class="nav-link active" data-toggle="tab" href="#panel2" role="tab"><i class="fa fa-envelope"></i> {% trans "Mail Sender" %}</a>
  37 + <a class="nav-link {% if page == 'security' %}active{% endif %}" data-toggle="tab" href="#security" role="tab"><i class="fa fa-lock"></i> {% trans "Security" %}</a>
27 38 </li>
28   - {% else %}
29   - <a class="nav-link active" data-toggle="tab" href="#panel1" role="tab"><i class="fa fa-cog"></i> {% trans "System" %}</a>
30   -<li class="nav-item">
31   - <a class="nav-link" data-toggle="tab" href="#panel2" role="tab"><i class="fa fa-envelope"></i> {% trans "Mail Sender" %}</a>
32   -</li>
33   -{% endif %}
34   -<li class="nav-item">
35   - <a class="nav-link" data-toggle="tab" href="#panel3" role="tab"><i class="fa fa-lock"></i> {% trans "Security" %}</a>
36   -</li>
37 39 </ul>
38 40  
39 41 <!-- Tab panels -->
40 42 <div class="tab-content">
41 43 <!--Panel 1-->
42 44 {% if form.errors %}
43   - <div class="tab-pane fade" id="panel1" role="tabpanel">
  45 + <div class="tab-pane fade" id="system" role="tabpanel">
44 46 {% else %}
45   - <div class="tab-pane fade in active" id="panel1" role="tabpanel">
  47 + <div class="tab-pane fade {% if page == 'system' %}in active{% endif %}" id="system" role="tabpanel">
46 48 {% endif %}
47 49 <div class="panel panel-default">
48 50 <div class="panel-body">
... ... @@ -60,10 +62,10 @@
60 62  
61 63 <!--Panel 2-->
62 64 {% if form.errors %}
63   - <div class="tab-pane fade in active" id="panel2" role="tabpanel">
  65 + <div class="tab-pane fade in active" id="mail_sender" role="tabpanel">
64 66 {% else %}
65   - <div class="tab-pane fade" id="panel2" role="tabpanel">
66   - {% endif %}
  67 + <div class="tab-pane fade {% if page == 'mail_sender' %}in active{% endif %}" id="mail_sender" role="tabpanel">
  68 + {% endif %}
67 69 <div class="panel panel-default">
68 70 <form class="form-horizontal" method="post">
69 71 {% csrf_token %}
... ... @@ -252,7 +254,7 @@
252 254 <!--/.Panel 2-->
253 255  
254 256 <!--Panel 3-->
255   - <div class="tab-pane fade" id="panel3" role="tabpanel">
  257 + <div class="tab-pane fade {% if page == 'security' %}in active{% endif %}" id="security" role="tabpanel">
256 258 <div class="panel panel-default">
257 259 <div class="panel-body">
258 260 <div class="togglebutton">
... ...
app/templates/home.html
... ... @@ -110,9 +110,9 @@
110 110 <a href="#menu_settings" class="accordion" data-toggle="collapse">{% trans 'Settings' %}<span class="pull-right glyphicon glyphicon-chevron-down"></span></a>
111 111 <div id="menu_settings" class="collapse">
112 112 <ul class="nav nav-pill nav-stacked accordion_list">
113   - <li> <a href="{% url 'app:settings' %}">{% trans "System" %}</a></li>
114   - <li> <a href="{% url 'app:settings' %}">{% trans "Mail Sender" %}</a></li>
115   - <li> <a href="{% url 'app:settings' %}">{% trans "Security" %}</a></li>
  113 + <li> <a href="{% url 'app:settings' page='system' %}">{% trans "System" %}</a></li>
  114 + <li> <a href="{% url 'app:settings' page='mail_sender' %}">{% trans "Mail Sender" %}</a></li>
  115 + <li> <a href="{% url 'app:settings' page='security' %}">{% trans "Security" %}</a></li>
116 116 </ul>
117 117 </div>
118 118 </li>
... ...
app/urls.py
... ... @@ -4,5 +4,5 @@ from . import views
4 4  
5 5 urlpatterns = [
6 6 url(r'^$', views.AppIndex.as_view(), name='index'),
7   - url(r'^settings/$', views.AmadeusSettings.as_view(), name='settings'),
  7 + url(r'^settings/(?P<page>[\w_-]+)/$', views.AmadeusSettings.as_view(), name='settings'),
8 8 ]
... ...
app/views.py
... ... @@ -51,7 +51,10 @@ class AmadeusSettings(LoginRequiredMixin, HasRoleMixin, generic.CreateView):
51 51 model = EmailBackend
52 52 template_name = 'admin_settings.html'
53 53 form_class = EmailBackendForm
54   - success_url = reverse_lazy('app:settings')
  54 + #success_url = reverse_lazy('app:settings')
  55 +
  56 + def get_success_url(self):
  57 + return reverse_lazy('app:settings', kwargs = {'page': self.kwargs['page']})
55 58  
56 59 def form_invalid(self, form):
57 60 return self.render_to_response(self.get_context_data(form=form))
... ... @@ -75,6 +78,7 @@ class AmadeusSettings(LoginRequiredMixin, HasRoleMixin, generic.CreateView):
75 78  
76 79 def get_context_data(self, **kwargs):
77 80 context = super(AmadeusSettings, self).get_context_data(**kwargs)
  81 + context['page'] = self.kwargs.get('page')
78 82 if not self.request.method == 'POST':
79 83 try:
80 84 setting = EmailBackend.objects.latest('id')
... ...