core: add about modal
This commit is contained in:
		| @ -9,6 +9,7 @@ class PassbookAuditConfig(AppConfig): | ||||
|  | ||||
|     name = 'passbook.audit' | ||||
|     label = 'passbook_audit' | ||||
|     verbose_name = 'passbook Audit' | ||||
|     mountpoint = 'audit/' | ||||
|  | ||||
|     def ready(self): | ||||
|  | ||||
| @ -7,3 +7,4 @@ class PassbookCaptchaFactorConfig(AppConfig): | ||||
|  | ||||
|     name = 'passbook.captcha_factor' | ||||
|     label = 'passbook_captcha_factor' | ||||
|     verbose_name = 'passbook Captcha' | ||||
|  | ||||
| @ -12,6 +12,7 @@ | ||||
|       {% endblock %} | ||||
|     </title> | ||||
|     <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-additions.min.css' %}"> | ||||
|     {% block head %} | ||||
| @ -25,5 +26,8 @@ | ||||
|     <script src="{% static 'js/patternfly.min.js' %}"></script> | ||||
|     {% block scripts %} | ||||
|     {% endblock %} | ||||
|     <div class="modals"> | ||||
|       {% include 'partials/about_modal.html' %} | ||||
|     </div> | ||||
|   </body> | ||||
| </html> | ||||
|  | ||||
| @ -26,7 +26,7 @@ | ||||
|         </button> | ||||
|         <ul class="dropdown-menu" aria-labelledby="horizontalDropdownMenu1"> | ||||
|           <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> | ||||
|       </li> | ||||
|       <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' | ||||
|     label = 'passbook_ldap' | ||||
|     verbose_name = 'Passbook LDAP' | ||||
|     verbose_name = 'passbook LDAP' | ||||
|  | ||||
| @ -2,6 +2,7 @@ | ||||
| import glob | ||||
| import os | ||||
| import socket | ||||
| from importlib import import_module | ||||
| from urllib.parse import urljoin | ||||
|  | ||||
| from django import template | ||||
| @ -163,3 +164,17 @@ def unslug(_input): | ||||
| def css_class(field, css): | ||||
|     """Add css class to form field""" | ||||
|     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' | ||||
|     label = 'passbook_totp' | ||||
|     verbose_name = 'passbook TOTP' | ||||
|     mountpoint = 'user/totp/' | ||||
|  | ||||
		Reference in New Issue
	
	Block a user
	 Jens Langhammer
					Jens Langhammer