· 5 years ago · May 10, 2020, 05:58 PM
11)"URLS.PY"
2-------------
3from django.conf.urls import url
4from . import views
5
6urlpatterns = [
7
8 url(r'^panel/$', views.panel, name='panel'),
9 url(r'^login/$', views.my_login, name='my_login'),
10 url(r'^logout/$', views.my_logout, name='my_logout'),
11 url(r'^panel/change/password/$', views.change_pass, name='change_pass'),
12 url(r'^register/$', views.my_register, name='my_register'),
13
14]
15_________________________________________________________________________________________________________
16
172)"VIEWS.PY"
18-------------
19from django.shortcuts import render, get_list_or_404, redirect
20from django.contrib.auth import authenticate, login, logout
21from django.core.files.storage import FileSystemStorage
22import re
23#Import current user
24from django.contrib.auth.models import User, Group, Permission
25
26
27def panel(request):
28
29 #login check started
30 if not request.user.is_authenticated:
31 return redirect('my_login')
32 #login check end
33
34
35 return render(request, 'back/home.html')
36
37def my_login(request):
38
39 if request.method == 'POST':
40 usern = request.POST.get('username')
41 passw = request.POST.get('password')
42
43 if usern != "" and passw != "":
44 user = authenticate(username= usern, password=passw)
45
46 if user != None:
47 login(request, user)
48 return redirect('panel')
49
50
51 return render(request, 'front/login.html')
52
53def my_register(request):
54
55 if request.method == 'POST':
56
57 name = request.POST.get('name')
58 username = request.POST.get('username')
59 email = request.POST.get('email')
60 password = request.POST.get('password')
61 passverify = request.POST.get('passverify')
62
63 try:
64
65 if password != passverify:
66
67 msg = "Password does not match!!!"
68 return render(request, 'front/msgbox.html', {'msg':msg})
69 #Checking Password complexity
70 if re.match(r'[A-Za-z0-9@#$%^&+=]{8,}', password):
71
72 #Checking whether username or email already exists
73 if len(User.objects.filter(username=username)) == 0 and len(User.objects.filter(email=email)) == 0:
74
75
76 #Saving credentials
77 user = User.objects.create_user(username=username, email=email, password=password)
78
79 #For listing registered users in User Manager List || from usermanager.models import UserManager
80 m = UserManager(name=name, username=username, email=email, ip=ip, geolocation=country)
81 m.save()
82
83 else:
84
85 msg = "Username and Email already exists!!"
86 return render(request, 'front/msgbox.html', {'msg':msg})
87
88 else:
89
90 msg = "Password must have complexity!!"
91 return render(request, 'front/msgbox.html', {'msg':msg})
92
93 except:
94 msg = "Something went wrong!"
95 return render(request, 'front/msgbox.html', {'msg':msg})
96
97
98
99
100 return render(request, 'front/login.html')
101
102def my_logout(request):
103
104 logout(request)
105 return redirect('my_login')
106
107
1083)Login HTML File
109------------
110
111{% load static %}
112<!DOCTYPE html>
113<!--[if IE 9]> <html class="no-js lt-ie10" lang="en"> <![endif]-->
114<!--[if gt IE 9]><!--> <html class="no-js" lang="en"> <!--<![endif]-->
115 <head>
116 <meta charset="utf-8">
117
118 <title>SacredMountain Login</title>
119
120 <meta name="description" content="ProUI is a Responsive Bootstrap Admin Template created by pixelcave and published on Themeforest.">
121 <meta name="author" content="pixelcave">
122 <meta name="robots" content="noindex, nofollow">
123 <meta name="viewport" content="width=device-width,initial-scale=1.0,user-scalable=0">
124
125 <!-- Icons -->
126 <!-- The following icons can be replaced with your own, they are used by desktop and mobile browsers -->
127 <link rel="shortcut icon" href="{% static 'back/img/favicon.png' %}">
128 <link rel="apple-touch-icon" href="{% static 'back/img/icon57.png' %}" sizes="57x57">
129 <link rel="apple-touch-icon" href="{% static 'back/img/icon72.png' %}" sizes="72x72">
130 <link rel="apple-touch-icon" href="{% static 'back/img/icon76.png' %}" sizes="76x76">
131 <link rel="apple-touch-icon" href="{% static 'back/img/icon114.png' %}" sizes="114x114">
132 <link rel="apple-touch-icon" href="{% static 'back/img/icon120.png' %}" sizes="120x120">
133 <link rel="apple-touch-icon" href="{% static 'back/img/icon144.png' %}" sizes="144x144">
134 <link rel="apple-touch-icon" href="{% static 'back/img/icon152.png' %}" sizes="152x152">
135 <link rel="apple-touch-icon" href="{% static 'back/img/icon180.png' %}" sizes="180x180">
136 <!-- END Icons -->
137
138 <!-- Stylesheets -->
139 <!-- Bootstrap is included in its original form, unaltered -->
140 <link rel="stylesheet" href="{% static 'back/css/bootstrap.min.css' %}">
141
142 <!-- Related styles of various icon packs and plugins -->
143 <link rel="stylesheet" href="{% static 'back/css/plugins.css' %}">
144
145 <!-- The main stylesheet of this template. All Bootstrap overwrites are defined in here -->
146 <link rel="stylesheet" href="{% static 'back/css/main.css' %}">
147
148 <!-- Include a specific file here from css/themes/ folder to alter the default theme of the template -->
149
150 <!-- The themes stylesheet of this template (for using specific theme color in individual elements - must included last) -->
151 <link rel="stylesheet" href="{% static 'back/css/themes.css' %}">
152 <!-- END Stylesheets -->
153
154 <!-- Modernizr (browser feature detection library) -->
155 <script src="{% static 'back/js/vendor/modernizr.min.js' %}"></script>
156 </head>
157 <body>
158 <!-- Login Alternative Row -->
159 <div class="container">
160 <div class="row">
161 <div class="col-md-5 col-md-offset-1">
162 <div id="login-alt-container">
163 <!-- Title -->
164 <h1 class="push-top-bottom">
165 <i class="gi gi-flash"></i> <strong>SacredMountain</strong><br>
166 <small>Welcome to SacredMountain Login Page!</small>
167 </h1>
168 <!-- END Title -->
169
170 <!-- Key Features -->
171 <ul class="fa-ul text-muted">
172 <li><i class="fa fa-check fa-li text-success"></i> Clean & Modern Design</li>
173 <li><i class="fa fa-check fa-li text-success"></i> Fully Responsive & Retina Ready</li>
174 <li><i class="fa fa-check fa-li text-success"></i> 10 Color Themes</li>
175 <li><i class="fa fa-check fa-li text-success"></i> PSD Files Included</li>
176 <li><i class="fa fa-check fa-li text-success"></i> Widgets Collection</li>
177 <li><i class="fa fa-check fa-li text-success"></i> Designed Pages Collection</li>
178 <li><i class="fa fa-check fa-li text-success"></i> .. and many more awesome features!</li>
179 </ul>
180 <!-- END Key Features -->
181
182 <!-- Footer -->
183 <footer class="text-muted push-top-bottom">
184 <small><span id="year-copy"></span> © <a href="http://goo.gl/TDOSuC" target="_blank">ProUI 3.8</a></small>
185 </footer>
186 <!-- END Footer -->
187 </div>
188 </div>
189 <div class="col-md-5">
190 <!-- Login Container -->
191 <div id="login-container">
192 <!-- Login Title -->
193 <div class="login-title text-center">
194 <h1><strong>Login</strong> or <strong>Register</strong></h1>
195 </div>
196 <!-- END Login Title -->
197
198 <!-- Login Block -->
199 <div class="block push-bit">
200 <!-- Login Form -->
201 <form action="{% url 'my_login' %}" method="post" id="form-login" class="form-horizontal">
202 {% csrf_token %}
203 <div class="form-group">
204 <div class="col-xs-12">
205 <div class="input-group">
206 <span class="input-group-addon"><i class="gi gi-envelope"></i></span>
207 <input type="text" id="username" name="username" class="form-control input-lg" placeholder="Username">
208 </div>
209 </div>
210 </div>
211 <div class="form-group">
212 <div class="col-xs-12">
213 <div class="input-group">
214 <span class="input-group-addon"><i class="gi gi-asterisk"></i></span>
215 <input type="password" id="password" name="password" class="form-control input-lg" placeholder="Password">
216 </div>
217 </div>
218 </div>
219 <div class="form-group form-actions">
220
221 <div class="col-xs-8 text-right">
222 <button type="submit" class="btn btn-sm btn-primary"><i class="fa fa-angle-right"></i> Login to Dashboard</button>
223 </div>
224 </div>
225 <div class="form-group">
226 <div class="col-xs-12 text-center">
227 <a href="javascript:void(0)" id="link-reminder-login"><small>Forgot password?</small></a> -
228 <a href="javascript:void(0)" id="link-register-login"><small>Create a new account</small></a>
229 </div>
230 </div>
231 </form>
232 <!-- END Login Form -->
233
234 <!-- Reminder Form -->
235 <form action="login_alt.html#reminder" method="post" id="form-reminder" class="form-horizontal display-none">
236 <div class="form-group">
237 <div class="col-xs-12">
238 <div class="input-group">
239 <span class="input-group-addon"><i class="gi gi-envelope"></i></span>
240 <input type="text" id="reminder-email" name="reminder-email" class="form-control input-lg" placeholder="Email">
241 </div>
242 </div>
243 </div>
244 <div class="form-group form-actions">
245 <div class="col-xs-12 text-right">
246 <button type="submit" class="btn btn-sm btn-primary"><i class="fa fa-angle-right"></i> Reset Password</button>
247 </div>
248 </div>
249 <div class="form-group">
250 <div class="col-xs-12 text-center">
251 <small>Did you remember your password?</small> <a href="javascript:void(0)" id="link-reminder"><small>Login</small></a>
252 </div>
253 </div>
254 </form>
255 <!-- END Reminder Form -->
256
257 <!-- Register Form -->
258
259 <form action="{% url 'my_register' %}" method="post" id="form-register" class="form-horizontal display-none">
260 {% csrf_token %}
261
262 <div class="form-group">
263 <div class="col-xs-12">
264 <div class="input-group">
265 <span class="input-group-addon"><i class="gi gi-user"></i></span>
266 <input type="text" id="name" name="name" class="form-control input-lg" placeholder="Name" required>
267 </div>
268 </div>
269
270 </div>
271 <div class="form-group">
272 <div class="col-xs-12">
273 <div class="input-group">
274 <span class="input-group-addon"><i class="gi gi-user"></i></span>
275 <input type="text" id="username" name="username" class="form-control input-lg" placeholder="Username" required>
276 </div>
277 </div>
278
279 </div>
280
281 <div class="form-group">
282 <div class="col-xs-12">
283 <div class="input-group">
284 <span class="input-group-addon"><i class="gi gi-envelope"></i></span>
285 <input type="text" id="email" name="email" class="form-control input-lg" placeholder="Email" required>
286 </div>
287 </div>
288 </div>
289 <div class="form-group">
290 <div class="col-xs-12">
291 <div class="input-group">
292 <span class="input-group-addon"><i class="gi gi-asterisk"></i></span>
293 <input type="password" id="password" name="password" class="form-control input-lg" placeholder="Password" required>
294 </div>
295 </div>
296 </div>
297 <div class="form-group">
298 <div class="col-xs-12">
299 <div class="input-group">
300 <span class="input-group-addon"><i class="gi gi-asterisk"></i></span>
301 <input type="password" id="passverify" name="passverify" class="form-control input-lg" placeholder="Verify Password" required>
302 </div>
303 </div>
304 </div>
305 <div class="form-group form-actions">
306 <div class="col-xs-6">
307 <a href="#modal-terms" data-toggle="modal" class="register-terms">Terms</a>
308 <label class="switch switch-primary" data-toggle="tooltip" title="Agree to the terms">
309 <input type="checkbox" id="terms" name="terms" required>
310 <span></span>
311 </label>
312 </div>
313 <div class="col-xs-6 text-right">
314 <button type="submit" class="btn btn-sm btn-success"><i class="fa fa-plus"></i> Register Account</button>
315 </div>
316 </div>
317 <div class="form-group">
318 <div class="col-xs-12 text-center">
319 <small>Do you have an account?</small> <a href="javascript:void(0)" id="link-register"><small>Login</small></a>
320 </div>
321 </div>
322 </form>
323 <!-- END Register Form -->
324 </div>
325 <!-- END Login Block -->
326 </div>
327 <!-- END Login Container -->
328 </div>
329 </div>
330 </div>
331 <!-- END Login Alternative Row -->
332
333 <!-- Modal Terms -->
334 <div id="modal-terms" class="modal" tabindex="-1" role="dialog" aria-hidden="true">
335 <div class="modal-dialog">
336 <div class="modal-content">
337 <div class="modal-header">
338 <button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
339 <h4 class="modal-title">Terms & Conditions</h4>
340 </div>
341 <div class="modal-body">
342 <h4>Title</h4>
343 <p>Donec lacinia venenatis metus at bibendum? In hac habitasse platea dictumst. Proin ac nibh rutrum lectus rhoncus eleifend. Sed porttitor pretium venenatis. Suspendisse potenti. Aliquam quis ligula elit. Aliquam at orci ac neque semper dictum. Sed tincidunt scelerisque ligula, et facilisis nulla hendrerit non. Suspendisse potenti. Pellentesque non accumsan orci. Praesent at lacinia dolor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.</p>
344 <p>Donec lacinia venenatis metus at bibendum? In hac habitasse platea dictumst. Proin ac nibh rutrum lectus rhoncus eleifend. Sed porttitor pretium venenatis. Suspendisse potenti. Aliquam quis ligula elit. Aliquam at orci ac neque semper dictum. Sed tincidunt scelerisque ligula, et facilisis nulla hendrerit non. Suspendisse potenti. Pellentesque non accumsan orci. Praesent at lacinia dolor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.</p>
345 <h4>Title</h4>
346 <p>Donec lacinia venenatis metus at bibendum? In hac habitasse platea dictumst. Proin ac nibh rutrum lectus rhoncus eleifend. Sed porttitor pretium venenatis. Suspendisse potenti. Aliquam quis ligula elit. Aliquam at orci ac neque semper dictum. Sed tincidunt scelerisque ligula, et facilisis nulla hendrerit non. Suspendisse potenti. Pellentesque non accumsan orci. Praesent at lacinia dolor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.</p>
347 <p>Donec lacinia venenatis metus at bibendum? In hac habitasse platea dictumst. Proin ac nibh rutrum lectus rhoncus eleifend. Sed porttitor pretium venenatis. Suspendisse potenti. Aliquam quis ligula elit. Aliquam at orci ac neque semper dictum. Sed tincidunt scelerisque ligula, et facilisis nulla hendrerit non. Suspendisse potenti. Pellentesque non accumsan orci. Praesent at lacinia dolor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.</p>
348 <h4>Title</h4>
349 <p>Donec lacinia venenatis metus at bibendum? In hac habitasse platea dictumst. Proin ac nibh rutrum lectus rhoncus eleifend. Sed porttitor pretium venenatis. Suspendisse potenti. Aliquam quis ligula elit. Aliquam at orci ac neque semper dictum. Sed tincidunt scelerisque ligula, et facilisis nulla hendrerit non. Suspendisse potenti. Pellentesque non accumsan orci. Praesent at lacinia dolor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.</p>
350 <p>Donec lacinia venenatis metus at bibendum? In hac habitasse platea dictumst. Proin ac nibh rutrum lectus rhoncus eleifend. Sed porttitor pretium venenatis. Suspendisse potenti. Aliquam quis ligula elit. Aliquam at orci ac neque semper dictum. Sed tincidunt scelerisque ligula, et facilisis nulla hendrerit non. Suspendisse potenti. Pellentesque non accumsan orci. Praesent at lacinia dolor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.</p>
351 </div>
352 </div>
353 </div>
354 </div>
355 <!-- END Modal Terms -->
356
357 <!-- jQuery, Bootstrap.js, jQuery plugins and Custom JS code -->
358 <script src="{% static 'back/js/vendor/jquery.min.js' %}"></script>
359 <script src="{% static 'back/js/vendor/bootstrap.min.js' %}"></script>
360 <script src="{% static 'back/js/plugins.js' %}"></script>
361 <script src="{% static 'back/js/app.js' %}"></script>
362
363 <!-- Load and execute javascript code used only in this page -->
364 <script src="{% static 'back/js/pages/login.js' %}"></script>
365 <script>$(function(){ Login.init(); });</script>
366 </body>
367</html>
368
3694)Admin panel Master page
370------------------------
371
372{% load static %}
373
374
375{% if user.is_authenticated %}
376<!DOCTYPE html>
377<!--[if IE 9]> <html class="no-js lt-ie10" lang="en"> <![endif]-->
378<!--[if gt IE 9]><!--> <html class="no-js" lang="en"> <!--<![endif]-->
379 <head>
380 <meta charset="utf-8">
381
382 {% block headblock %}
383
384 {% endblock %}
385
386 <meta name="description" content="ProUI is a Responsive Bootstrap Admin Template created by pixelcave and published on Themeforest.">
387 <meta name="author" content="pixelcave">
388 <meta name="robots" content="noindex, nofollow">
389 <meta name="viewport" content="width=device-width,initial-scale=1.0,user-scalable=0">
390
391 <!-- Icons -->
392 <!-- The following icons can be replaced with your own, they are used by desktop and mobile browsers -->
393 <link rel="shortcut icon" href="{% static 'back/img/favicon.png' %}">
394 <link rel="apple-touch-icon" href="{% static 'back/img/icon57.png' %}" sizes="57x57">
395 <link rel="apple-touch-icon" href="{% static 'back/img/icon72.png' %}" sizes="72x72">
396 <link rel="apple-touch-icon" href="{% static 'back/img/icon76.png' %}" sizes="76x76">
397 <link rel="apple-touch-icon" href="{% static 'back/img/icon76.png' %}" sizes="76x76">
398 <link rel="apple-touch-icon" href="{% static 'back/img/icon114.png' %}" sizes="114x114">
399 <link rel="apple-touch-icon" href="{% static 'back/img/icon120.png' %}" sizes="120x120">
400 <link rel="apple-touch-icon" href="{% static 'back/img/icon144.png' %}" sizes="144x144">
401 <link rel="apple-touch-icon" href="{% static 'back/img/icon152.png' %}" sizes="152x152">
402 <link rel="apple-touch-icon" href="{% static 'back/img/icon180.png' %}" sizes="180x180">
403 <!-- END Icons -->
404
405 <!-- Stylesheets -->
406 <!-- Bootstrap is included in its original form, unaltered -->
407 <link rel="stylesheet" href="{% static 'back/css/bootstrap.min.css' %}">
408
409 <!-- Related styles of various icon packs and plugins -->
410 <link rel="stylesheet" href="{% static 'back/css/plugins.css' %}">
411
412 <!-- The main stylesheet of this template. All Bootstrap overwrites are defined in here -->
413 <link rel="stylesheet" href="{% static 'back/css/main.css' %}">
414
415 <!-- Include a specific file here from css/themes/ folder to alter the default theme of the template -->
416
417 <!-- The themes stylesheet of this template (for using specific theme color in individual elements - must included last) -->
418 <link rel="stylesheet" href="{% static 'back/css/themes.css' %}">
419 <!-- END Stylesheets -->
420
421 <!-- Modernizr (browser feature detection library) -->
422 <script src="{% static 'back/js/vendor/modernizr.min.js' %}"></script>
423
424
425 </head>
426 <body>
427 <!-- Page Wrapper -->
428 <!-- In the PHP version you can set the following options from inc/config file -->
429 <!--
430 Available classes:
431
432 'page-loading' enables page preloader
433 -->
434 <div id="page-wrapper">
435 <!-- Preloader -->
436 <!-- Preloader functionality (initialized in js/app.js) - pageLoading() -->
437 <!-- Used only if page preloader is enabled from inc/config (PHP version) or the class 'page-loading' is added in #page-wrapper element (HTML version) -->
438 <div class="preloader themed-background">
439 <h1 class="push-top-bottom text-light text-center"><strong>Admin</strong>Panel</h1>
440 <div class="inner">
441 <h3 class="text-light visible-lt-ie10"><strong>Loading..</strong></h3>
442 <div class="preloader-spinner hidden-lt-ie10"></div>
443 </div>
444 </div>
445 <!-- END Preloader -->
446
447 <!-- Page Container -->
448 <!-- In the PHP version you can set the following options from inc/config file -->
449 <!--
450 Available #page-container classes:
451
452 '' (None) for a full main and alternative sidebar hidden by default (> 991px)
453
454 'sidebar-visible-lg' for a full main sidebar visible by default (> 991px)
455 'sidebar-partial' for a partial main sidebar which opens on mouse hover, hidden by default (> 991px)
456 'sidebar-partial sidebar-visible-lg' for a partial main sidebar which opens on mouse hover, visible by default (> 991px)
457 'sidebar-mini sidebar-visible-lg-mini' for a mini main sidebar with a flyout menu, enabled by default (> 991px + Best with static layout)
458 'sidebar-mini sidebar-visible-lg' for a mini main sidebar with a flyout menu, disabled by default (> 991px + Best with static layout)
459
460 'sidebar-alt-visible-lg' for a full alternative sidebar visible by default (> 991px)
461 'sidebar-alt-partial' for a partial alternative sidebar which opens on mouse hover, hidden by default (> 991px)
462 'sidebar-alt-partial sidebar-alt-visible-lg' for a partial alternative sidebar which opens on mouse hover, visible by default (> 991px)
463
464 'sidebar-partial sidebar-alt-partial' for both sidebars partial which open on mouse hover, hidden by default (> 991px)
465
466 'sidebar-no-animations' add this as extra for disabling sidebar animations on large screens (> 991px) - Better performance with heavy pages!
467
468 'style-alt' for an alternative main style (without it: the default style)
469 'footer-fixed' for a fixed footer (without it: a static footer)
470
471 'disable-menu-autoscroll' add this to disable the main menu auto scrolling when opening a submenu
472
473 'header-fixed-top' has to be added only if the class 'navbar-fixed-top' was added on header.navbar
474 'header-fixed-bottom' has to be added only if the class 'navbar-fixed-bottom' was added on header.navbar
475
476 'enable-cookies' enables cookies for remembering active color theme when changed from the sidebar links
477 -->
478 <div id="page-container" class="sidebar-partial sidebar-visible-lg sidebar-no-animations">
479
480
481 <!-- Main Sidebar -->
482 <div id="sidebar">
483 <!-- Wrapper for scrolling functionality -->
484 <div id="sidebar-scroll">
485 <!-- Sidebar Content -->
486 <div class="sidebar-content">
487 <!-- Brand -->
488 <a href="/panel" class="sidebar-brand">
489 <i class="gi gi-flash"></i><span class="sidebar-nav-mini-hide"><strong>Admin</strong>Panel</span>
490 </a>
491 <!-- END Brand -->
492
493 <!-- User Info -->
494 <div class="sidebar-section sidebar-user clearfix sidebar-nav-mini-hide">
495 <div class="sidebar-user-avatar">
496 <a href="page_ready_user_profile.html">
497 <img src="{% static 'back/img/placeholders/avatars/avatar2.jpg' %}" alt="avatar">
498 </a>
499 </div>
500 <div class="sidebar-user-name">{{request.user}}</div>
501 <div class="sidebar-user-links">
502 <a href="page_ready_user_profile.html" data-toggle="tooltip" data-placement="bottom" title="Profile"><i class="gi gi-user"></i></a>
503 <a href="page_ready_inbox.html" data-toggle="tooltip" data-placement="bottom" title="Messages"><i class="gi gi-envelope"></i></a>
504 <!-- Opens the user settings modal that can be found at the bottom of each page (page_footer.html in PHP version) -->
505 <a href="/panel/change/password/" class="enable-tooltip" data-placement="bottom" title="Settings" ><i class="gi gi-cogwheel"></i></a>
506 <a href="/logout" data-toggle="tooltip" data-placement="bottom" title="Logout"><i class="gi gi-exit"></i></a>
507 </div>
508 </div>
509 <!-- END User Info -->
510
511 <!-- Theme Colors -->
512
513
514 <!-- Sidebar Navigation -->
515 <ul class="sidebar-nav">
516 <li>
517 <a href="/panel" class=" active"><i class="gi gi-stopwatch sidebar-nav-icon"></i><span class="sidebar-nav-mini-hide">Dashboard</span></a>
518 </li>
519
520
521 <!--Do not put space between below "if" statement(otherways error will occur)-->
522
523 {% if request.user|has_group:"masteruser" %}
524
525 <li class="sidebar-header">
526 <span class="sidebar-header-options clearfix"><a href="javascript:void(0)" data-toggle="tooltip" title="Quick Settings"><i class="gi gi-settings"></i></a></span>
527 <span class="sidebar-header-title">Site Settings</span>
528 </li>
529
530 <li>
531 <a href="/panel/setting" class=""><i class="gi gi-show_big_thumbnails sidebar-nav-icon"></i><span class="sidebar-nav-mini-hide">Settings</span></a>
532 </li>
533
534 <li>
535 <a href="/panel/about/setting/" class=""><i class="gi gi-show_big_thumbnails sidebar-nav-icon"></i><span class="sidebar-nav-mini-hide">About Settings</span></a>
536 </li>
537
538 <li>
539 <a href="/panel/contact/form/" class=""><i class="gi gi-show_big_thumbnails sidebar-nav-icon"></i><span class="sidebar-nav-mini-hide">Contact Settings</span></a>
540 </li>
541
542 <li>
543 <a href="/panel/trending/" class=""><i class="gi gi-show_big_thumbnails sidebar-nav-icon"></i><span class="sidebar-nav-mini-hide">Trending Settings</span></a>
544 </li>
545 <li>
546 <a href="/panel/ip/blacklist/" class=""><i class="gi gi-show_big_thumbnails sidebar-nav-icon"></i><span class="sidebar-nav-mini-hide">IP BlackList</span></a>
547 </li>
548
549 <li class="sidebar-header">
550 <span class="sidebar-header-options clearfix"><a href="javascript:void(0)" data-toggle="tooltip" title="Quick Settings"><i class="gi gi-settings"></i></a></span>
551 <span class="sidebar-header-title">Group | Permission</span>
552 </li>
553
554 <li>
555 <a href="/panel/manage/group/" class=""><i class="gi gi-show_big_thumbnails sidebar-nav-icon"></i><span class="sidebar-nav-mini-hide">Manage Groups</span></a>
556 </li>
557
558
559 <li>
560 <a href="/panel/manage/permission/" class=""><i class="gi gi-show_big_thumbnails sidebar-nav-icon"></i><span class="sidebar-nav-mini-hide">Manage Permission</span></a>
561 </li>
562
563
564 <li class="sidebar-header">
565 <span class="sidebar-header-options clearfix"><a href="javascript:void(0)" data-toggle="tooltip" title="Quick Settings"><i class="gi gi-settings"></i></a></span>
566 <span class="sidebar-header-title">User Manager</span>
567 </li>
568
569 <li>
570 <a href="/panel/user/manager/" class=""><i class="gi gi-show_big_thumbnails sidebar-nav-icon"></i><span class="sidebar-nav-mini-hide">User List</span></a>
571 </li>
572
573
574
575
576 <li class="sidebar-header">
577 <span class="sidebar-header-options clearfix"><a href="javascript:void(0)" data-toggle="tooltip" title="Quick Settings"><i class="gi gi-settings"></i></a></span>
578 <span class="sidebar-header-title">News Section</span>
579 </li>
580
581 <li>
582 <a href="#" class="sidebar-nav-menu"><i class="fa fa-angle-left sidebar-nav-indicator sidebar-nav-mini-hide"></i><i class="gi gi-show_big_thumbnails sidebar-nav-icon"></i><span class="sidebar-nav-mini-hide">Category</span></a>
583 <ul>
584 <li>
585 <a href="/panel/category/add">Add Category</a>
586 </li>
587 <li>
588 <a href="/panel/category/list">Category List</a>
589 </li>
590
591 </ul>
592 </li>
593
594
595 <li>
596 <a href="#" class="sidebar-nav-menu"><i class="fa fa-angle-left sidebar-nav-indicator sidebar-nav-mini-hide"></i><i class="gi gi-show_big_thumbnails sidebar-nav-icon"></i><span class="sidebar-nav-mini-hide">SubCategory</span></a>
597 <ul>
598 <li>
599 <a href="/panel/subcategory/add">Add SubCategory</a>
600 </li>
601 <li>
602 <a href="/panel/subcategory/list">SubCategory List</a>
603 </li>
604
605 </ul>
606 </li>
607
608
609 <li>
610 <a href="#" class="sidebar-nav-menu"><i class="fa fa-angle-left sidebar-nav-indicator sidebar-nav-mini-hide"></i><i class="gi gi-show_big_thumbnails sidebar-nav-icon"></i><span class="sidebar-nav-mini-hide">NewsLetter</span></a>
611 <ul>
612 <li>
613 <a href="/panel/newsletter/email">Email</a>
614 </li>
615 <li>
616 <a href="/panel/newsletter/phone">Phone Number</a>
617 </li>
618
619 </ul>
620 </li>
621
622 {% endif %}
623 <li>
624 <a href="#" class="sidebar-nav-menu"><i class="fa fa-angle-left sidebar-nav-indicator sidebar-nav-mini-hide"></i><i class="gi gi-show_big_thumbnails sidebar-nav-icon"></i><span class="sidebar-nav-mini-hide">News</span></a>
625 <ul>
626 <li>
627 <a href="/panel/news/add">Add News</a>
628 </li>
629 <li>
630 <a href="/panel/news/list">News List</a>
631
632 </li>
633 <li>
634 <a href="/panel/newsdetail/comment/list">Comment List</a>
635 </li>
636
637 </ul>
638 </li>
639
640 </ul>
641 <!-- END Sidebar Navigation -->
642
643
644
645 </div>
646 <!-- END Sidebar Content -->
647 </div>
648 <!-- END Wrapper for scrolling functionality -->
649 </div>
650 <!-- END Main Sidebar -->
651
652 <!-- Main Container -->
653
654 <div id="main-container">
655 <!-- Header -->
656 <!-- In the PHP version you can set the following options from inc/config file -->
657 <!--
658 Available header.navbar classes:
659
660 'navbar-default' for the default light header
661 'navbar-inverse' for an alternative dark header
662
663 'navbar-fixed-top' for a top fixed header (fixed sidebars with scroll will be auto initialized, functionality can be found in js/app.js - handleSidebar())
664 'header-fixed-top' has to be added on #page-container only if the class 'navbar-fixed-top' was added
665
666 'navbar-fixed-bottom' for a bottom fixed header (fixed sidebars with scroll will be auto initialized, functionality can be found in js/app.js - handleSidebar()))
667 'header-fixed-bottom' has to be added on #page-container only if the class 'navbar-fixed-bottom' was added
668 -->
669 <header class="navbar navbar-default">
670 <!-- Left Header Navigation -->
671 <ul class="nav navbar-nav-custom">
672 <!-- Main Sidebar Toggle Button -->
673 <li>
674 <a href="javascript:void(0)" onclick="App.sidebar('toggle-sidebar');this.blur();">
675 <i class="fa fa-bars fa-fw"></i>
676 </a>
677 </li>
678 <!-- END Main Sidebar Toggle Button -->
679
680 <!-- Template Options -->
681 <!-- Change Options functionality can be found in js/app.js - templateOptions() -->
682
683 <!-- END Template Options -->
684 </ul>
685 <!-- END Left Header Navigation -->
686
687 <!-- Search Form -->
688 <form action="page_ready_search_results.html" method="post" class="navbar-form-custom">
689 <div class="form-group">
690 <input type="text" id="top-search" name="top-search" class="form-control" placeholder="Search..">
691 </div>
692 </form>
693 <!-- END Search Form -->
694
695
696 </header>
697 <!-- END Header -->
698
699 <!-- Page content -->
700 <div id="page-content">
701 <!-- Dashboard Header -->
702
703 {% block mainblock %}
704 {% endblock %}
705
706 <!-- Widgets Row -->
707
708 <!-- END Widgets Row -->
709 </div>
710 <!-- END Page Content -->
711
712
713
714 <!-- Footer -->
715 <footer class="navbar-fixed-bottom">
716 <div class="pull-right">
717 Crafted with <i class="fa fa-heart text-danger"></i> by <a href="#" target="_blank">Sacred Team</a>
718 </div>
719 <div class="pull-left">
720 <span id="year-copy"></span> ©
721 </div>
722 </footer>
723 <!-- END Footer -->
724 </div>
725 <!-- END Main Container -->
726 </div>
727 <!-- END Page Container -->
728 </div>
729 <!-- END Page Wrapper -->
730
731 <!-- Scroll to top link, initialized in js/app.js - scrollToTop() -->
732 <a href="#" id="to-top"><i class="fa fa-angle-double-up"></i></a>
733
734
735 <!-- jQuery, Bootstrap.js, jQuery plugins and Custom JS code -->
736 <script src="{% static 'back/js/vendor/jquery.min.js' %}"></script>
737 <script src="{% static 'back/js/vendor/bootstrap.min.js' %}"></script>
738 <script src="{% static 'back/js/plugins.js' %}"></script>
739 <script src="{% static 'back/js/app.js' %}"></script>
740
741 <!-- Google Maps API Key (you will have to obtain a Google Maps API key to use Google Maps) -->
742 <!-- For more info please have a look at https://developers.google.com/maps/documentation/javascript/get-api-key#key -->
743 <script src="https://maps.googleapis.com/maps/api/js?key="></script>
744 <script src="{% static 'back/js/helpers/gmaps.min.js' %}"></script>
745
746
747 {% block footerblock %}
748
749 {% endblock %}
750
751 </body>
752</html>