11# coding=utf-8
2- """"QGIS Welcome Page Entry admin
2+ """ "QGIS Welcome Page Entry admin
33
44.. note:: This program is free software; you can redistribute it and/or modify
55 it under the terms of the GNU General Public License as published by
88
99"""
1010
11- __author__ = ' elpaso@itopen.it'
12- __date__ = ' 2019-05-07'
13- __copyright__ = ' Copyright 2019, ItOpen'
11+ __author__ = " elpaso@itopen.it"
12+ __date__ = " 2019-05-07"
13+ __copyright__ = " Copyright 2019, ItOpen"
1414
1515
1616# Register your models here.
2323from django .core .mail import send_mail
2424from django .urls import reverse
2525from django .utils import timezone
26-
2726from user_visit .admin import UserVisitAdmin
2827from user_visit .models import UserVisit
2928
30- from .models import CharacterLimitConfiguration , QgisFeedEntry , QgisUserVisit , DailyQgisUserVisit
29+ from .models import (
30+ CharacterLimitConfiguration ,
31+ DailyQgisUserVisit ,
32+ QgisFeedEntry ,
33+ QgisUserVisit ,
34+ )
3135
3236# Get an instance of a logger
33- logger = logging .getLogger ('qgisfeed.admin' )
37+ logger = logging .getLogger ("qgisfeed.admin" )
38+
39+ DEFAULT_FROM_EMAIL = getattr (settings , "DEFAULT_FROM_EMAIL" , "noreply@qgis.org" )
3440
35- QGISFEED_FROM_EMAIL = getattr (settings , 'QGISFEED_FROM_EMAIL' , 'noreply@qgis.org' )
3641
3742class QgisFeedEntryAdmin (admin .GeoModelAdmin ):
3843
39- list_display = ('title' , 'author' , 'language_filter' , 'published' ,
40- 'publish_from' , 'publish_to' , 'sorting' )
44+ list_display = (
45+ "title" ,
46+ "author" ,
47+ "language_filter" ,
48+ "published" ,
49+ "publish_from" ,
50+ "publish_to" ,
51+ "sorting" ,
52+ )
4153
4254 def notify (self , author , request , recipients , obj ):
4355 """Send notification emails"""
@@ -46,19 +58,21 @@ def notify(self, author, request, recipients, obj):
4658 Title: %s\r \n
4759 Link: %s\r \n
4860 """ % (
49- author .username ,
50- obj .title ,
51- request .build_absolute_uri (reverse ('admin:qgisfeed_qgisfeedentry_change' , args = (obj .pk ,)))
52- )
61+ author .username ,
62+ obj .title ,
63+ request .build_absolute_uri (
64+ reverse ("admin:qgisfeed_qgisfeedentry_change" , args = (obj .pk ,))
65+ ),
66+ )
5367 if settings .DEBUG :
5468 logger .debug ("DEBUG is True: email not sent:\n %s" % body )
5569 else :
5670 send_mail (
57- ' A QGIS News Entry was added: %s' % obj .title ,
71+ " A QGIS News Entry was added: %s" % obj .title ,
5872 body ,
59- QGISFEED_FROM_EMAIL ,
73+ DEFAULT_FROM_EMAIL ,
6074 recipients ,
61- fail_silently = True
75+ fail_silently = True ,
6276 )
6377
6478 def save_model (self , request , obj , form , change ):
@@ -73,11 +87,15 @@ def save_model(self, request, obj, form, change):
7387 obj .save ()
7488
7589 if not change and not request .user .is_superuser :
76- recipients = [u .email for u in User .objects .filter (is_superuser = True , is_active = True , email__isnull = False ).exclude (email = '' )]
90+ recipients = [
91+ u .email
92+ for u in User .objects .filter (
93+ is_superuser = True , is_active = True , email__isnull = False
94+ ).exclude (email = "" )
95+ ]
7796 if recipients :
7897 self .notify (request .user , request , recipients , obj )
7998
80-
8199 def get_form (self , request , obj = None , ** kwargs ):
82100 """Hide published from not admin users"""
83101
@@ -88,34 +106,27 @@ def get_form(self, request, obj=None, **kwargs):
88106
89107
90108class QgisUserVisitAdmin (admin .StackedInline ):
91- readonly_fields = (' qgis_version' , ' location' , ' platform' )
109+ readonly_fields = (" qgis_version" , " location" , " platform" )
92110 can_delete = False
93111 model = QgisUserVisit
94112
95113
96114class CharacterLimitConfigurationAdmin (admin .ModelAdmin ):
97- list_display = (' field_name' , ' max_characters' )
115+ list_display = (" field_name" , " max_characters" )
98116 model = CharacterLimitConfiguration
99117
100118
101119class DailyQgisUserVisitAdmin (admin .ModelAdmin ):
102- list_display = (
103- 'date' ,
104- )
120+ list_display = ("date" ,)
105121
106122 def has_add_permission (self , request ):
107123 return False
108124
109125
110126class UpdatedUserVisitAdmin (UserVisitAdmin ):
111- inlines = [
112- QgisUserVisitAdmin
113- ]
127+ inlines = [QgisUserVisitAdmin ]
114128 list_display = ("timestamp" , "qgis_version" , "country" , "platform" )
115- search_fields = (
116- "qgisuservisit__qgis_version" ,
117- "qgisuservisit__location"
118- )
129+ search_fields = ("qgisuservisit__qgis_version" , "qgisuservisit__location" )
119130 readonly_fields = (
120131 "timestamp" ,
121132 "hash" ,
@@ -124,30 +135,33 @@ class UpdatedUserVisitAdmin(UserVisitAdmin):
124135 "ua_string" ,
125136 "created_at" ,
126137 )
127- exclude = [' user' , ' remote_addr' ]
138+ exclude = [" user" , " remote_addr" ]
128139
129140 def qgis_version (self , obj ):
130- qgis_version = ''
141+ qgis_version = ""
131142 if obj .qgisuservisit :
132143 qgis_version = obj .qgisuservisit .qgis_version
133144 if not qgis_version :
134- qgis_version = '-'
145+ qgis_version = "-"
135146 return qgis_version
136-
147+
137148 def country (self , obj ):
138- country = '-'
149+ country = "-"
139150 if obj .qgisuservisit :
140- if obj .qgisuservisit .location and 'country_name' in obj .qgisuservisit .location :
141- country = obj .qgisuservisit .location ['country_name' ]
151+ if (
152+ obj .qgisuservisit .location
153+ and "country_name" in obj .qgisuservisit .location
154+ ):
155+ country = obj .qgisuservisit .location ["country_name" ]
142156 return country
143157
144158 def platform (sel , obj ):
145- platfrom_string = ' Unknown'
159+ platfrom_string = " Unknown"
146160 if obj .qgisuservisit :
147161 platfrom_string = obj .qgisuservisit .platform
148162 return platfrom_string
149163
150- qgis_version .short_description = ' QGIS Version'
164+ qgis_version .short_description = " QGIS Version"
151165
152166
153167admin .site .register (QgisFeedEntry , QgisFeedEntryAdmin )
0 commit comments