core: add about modal
This commit is contained in:
		| @ -9,6 +9,7 @@ class PassbookAuditConfig(AppConfig): | |||||||
|  |  | ||||||
|     name = 'passbook.audit' |     name = 'passbook.audit' | ||||||
|     label = 'passbook_audit' |     label = 'passbook_audit' | ||||||
|  |     verbose_name = 'passbook Audit' | ||||||
|     mountpoint = 'audit/' |     mountpoint = 'audit/' | ||||||
|  |  | ||||||
|     def ready(self): |     def ready(self): | ||||||
|  | |||||||
| @ -7,3 +7,4 @@ class PassbookCaptchaFactorConfig(AppConfig): | |||||||
|  |  | ||||||
|     name = 'passbook.captcha_factor' |     name = 'passbook.captcha_factor' | ||||||
|     label = 'passbook_captcha_factor' |     label = 'passbook_captcha_factor' | ||||||
|  |     verbose_name = 'passbook Captcha' | ||||||
|  | |||||||
| @ -12,6 +12,7 @@ | |||||||
|       {% endblock %} |       {% endblock %} | ||||||
|     </title> |     </title> | ||||||
|     <link rel="icon" type="image/png" href="{% static 'img/logo.png' %}"> |     <link rel="icon" type="image/png" href="{% static 'img/logo.png' %}"> | ||||||
|  |     <link rel="shortcut icon" type="image/png" href="{% static 'img/logo.png' %}"> | ||||||
|     <link rel="stylesheet" type="text/css" href="{% static 'css/patternfly.min.css' %}"> |     <link rel="stylesheet" type="text/css" href="{% static 'css/patternfly.min.css' %}"> | ||||||
|     <link rel="stylesheet" type="text/css" href="{% static 'css/patternfly-additions.min.css' %}"> |     <link rel="stylesheet" type="text/css" href="{% static 'css/patternfly-additions.min.css' %}"> | ||||||
|     {% block head %} |     {% block head %} | ||||||
| @ -25,5 +26,8 @@ | |||||||
|     <script src="{% static 'js/patternfly.min.js' %}"></script> |     <script src="{% static 'js/patternfly.min.js' %}"></script> | ||||||
|     {% block scripts %} |     {% block scripts %} | ||||||
|     {% endblock %} |     {% endblock %} | ||||||
|  |     <div class="modals"> | ||||||
|  |       {% include 'partials/about_modal.html' %} | ||||||
|  |     </div> | ||||||
|   </body> |   </body> | ||||||
| </html> | </html> | ||||||
|  | |||||||
| @ -26,7 +26,7 @@ | |||||||
|         </button> |         </button> | ||||||
|         <ul class="dropdown-menu" aria-labelledby="horizontalDropdownMenu1"> |         <ul class="dropdown-menu" aria-labelledby="horizontalDropdownMenu1"> | ||||||
|           <li><a href="#0">Help</a></li> |           <li><a href="#0">Help</a></li> | ||||||
|           <li><a href="#0">About</a></li> |           <li><a data-toggle="modal" data-target="#about-modal" href="#0">{% trans 'About' %}</a></li> | ||||||
|         </ul> |         </ul> | ||||||
|       </li> |       </li> | ||||||
|       <li class="dropdown"> |       <li class="dropdown"> | ||||||
|  | |||||||
							
								
								
									
										36
									
								
								passbook/core/templates/partials/about_modal.html
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										36
									
								
								passbook/core/templates/partials/about_modal.html
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,36 @@ | |||||||
|  | {% load static %} | ||||||
|  | {% load i18n %} | ||||||
|  | {% load cache %} | ||||||
|  |  | ||||||
|  | {% load utils %} | ||||||
|  |  | ||||||
|  | <div class="modal fade" id="about-modal" tabindex="-1" role="dialog" aria-hidden="true"> | ||||||
|  |     <div class="modal-dialog"> | ||||||
|  |         <div class="modal-content about-modal-pf"> | ||||||
|  |             <div class="modal-header"> | ||||||
|  |                 <button type="button" class="close" data-dismiss="modal" aria-hidden="true"> | ||||||
|  |                     <span class="pficon pficon-close"></span> | ||||||
|  |                 </button> | ||||||
|  |             </div> | ||||||
|  |             <div class="modal-body"> | ||||||
|  |                 <h1>{% trans 'passbook' %}</h1> | ||||||
|  |                 <div class="product-versions-pf"> | ||||||
|  |                     <ul class="list-unstyled"> | ||||||
|  |                         {% app_versions as vers %} | ||||||
|  |                         {% cache 600 versions %} | ||||||
|  |                         {% for app, ver in vers.items %} | ||||||
|  |                         <li><strong>{{ app }}</strong> {{ ver }}</li> | ||||||
|  |                         {% endfor %} | ||||||
|  |                         {% endcache %} | ||||||
|  |                     </ul> | ||||||
|  |                 </div> | ||||||
|  |                 <div class="trademark-pf"> | ||||||
|  |                     Trademark and Copyright Information | ||||||
|  |                 </div> | ||||||
|  |             </div> | ||||||
|  |             <div class="modal-footer"> | ||||||
|  |                 <img style="max-height:64px;" src="{% static 'img/logo.png' %}" alt=" Symbol"> | ||||||
|  |             </div> | ||||||
|  |         </div> | ||||||
|  |     </div> | ||||||
|  | </div> | ||||||
| @ -8,4 +8,4 @@ class PassbookLdapConfig(AppConfig): | |||||||
|  |  | ||||||
|     name = 'passbook.ldap' |     name = 'passbook.ldap' | ||||||
|     label = 'passbook_ldap' |     label = 'passbook_ldap' | ||||||
|     verbose_name = 'Passbook LDAP' |     verbose_name = 'passbook LDAP' | ||||||
|  | |||||||
| @ -2,6 +2,7 @@ | |||||||
| import glob | import glob | ||||||
| import os | import os | ||||||
| import socket | import socket | ||||||
|  | from importlib import import_module | ||||||
| from urllib.parse import urljoin | from urllib.parse import urljoin | ||||||
|  |  | ||||||
| from django import template | from django import template | ||||||
| @ -163,3 +164,17 @@ def unslug(_input): | |||||||
| def css_class(field, css): | def css_class(field, css): | ||||||
|     """Add css class to form field""" |     """Add css class to form field""" | ||||||
|     return field.as_widget(attrs={"class": css}) |     return field.as_widget(attrs={"class": css}) | ||||||
|  |  | ||||||
|  |  | ||||||
|  | @register.simple_tag | ||||||
|  | def app_versions(): | ||||||
|  |     """Return dictionary of app_name: version""" | ||||||
|  |     app_versions = {} | ||||||
|  |     for app in apps.get_app_configs(): | ||||||
|  |         ver_module = import_module(app.name) | ||||||
|  |         ver = getattr(ver_module, '__version__', None) | ||||||
|  |         if ver: | ||||||
|  |             if not isinstance(ver, str): | ||||||
|  |                 ver = '.'.join([str(x) for x in ver]) | ||||||
|  |             app_versions[app.verbose_name] = ver | ||||||
|  |     return app_versions | ||||||
|  | |||||||
| @ -8,4 +8,5 @@ class PassbookTOTPConfig(AppConfig): | |||||||
|  |  | ||||||
|     name = 'passbook.totp' |     name = 'passbook.totp' | ||||||
|     label = 'passbook_totp' |     label = 'passbook_totp' | ||||||
|  |     verbose_name = 'passbook TOTP' | ||||||
|     mountpoint = 'user/totp/' |     mountpoint = 'user/totp/' | ||||||
|  | |||||||
		Reference in New Issue
	
	Block a user
	 Jens Langhammer
					Jens Langhammer