[damned-lies] refactor: fix few linter issues in people



commit 0b5bc57fb1813f6abb774b5a701370edb18a2565
Author: Guillaume Bernard <associations guillaume-bernard fr>
Date:   Sun Apr 18 10:37:06 2021 +0200

    refactor: fix few linter issues in people

 people/admin.py               |  2 ++
 people/forms.py               | 32 ++++++++++++++++----------------
 people/models.py              | 31 ++++++++++++++++++-------------
 people/templatetags/people.py |  1 -
 people/views.py               | 13 ++++++++++---
 5 files changed, 46 insertions(+), 33 deletions(-)
---
diff --git a/people/admin.py b/people/admin.py
index 659182a9..1c1ff24b 100644
--- a/people/admin.py
+++ b/people/admin.py
@@ -3,10 +3,12 @@ from django.contrib.auth.admin import UserAdmin
 from django.contrib.auth.models import User
 from people.models import Person
 
+
 class PersonAdmin(admin.ModelAdmin):
     search_fields = ('username', 'first_name', 'last_name', 'email')
     list_display = ('username', 'first_name', 'last_name', 'email')
 
+
 UserAdmin.list_display = ('username', 'email', 'last_name', 'first_name', 'is_active', 'last_login')
 
 admin.site.unregister(User)
diff --git a/people/forms.py b/people/forms.py
index 4faa41e7..e79a0416 100644
--- a/people/forms.py
+++ b/people/forms.py
@@ -1,7 +1,10 @@
-import hashlib, random
+import hashlib
+import random
 from http.client import InvalidURL
 from urllib.request import urlopen
 
+from PIL import ImageFile
+
 from django import forms
 from django.conf import settings
 from django.contrib.auth.forms import AuthenticationForm
@@ -69,13 +72,11 @@ class RegistrationForm(forms.Form):
         new_user.is_active = False
         new_user.save()
         # Send activation email
-        message = _("This is a confirmation that your registration on %s succeeded. To activate your 
account, please click on the link below or copy and paste it in a browser.") % settings.SITE_DOMAIN
-        message += "\n\nhttps://%s%s\n\n"; % (
-            settings.SITE_DOMAIN,
-            str(reverse("register_activation", kwargs={'key': activation_key}))
-        )
-        message += _("Administrators of %s" % settings.SITE_DOMAIN)
-
+        site_domain = settings.SITE_DOMAIN
+        activation_url = str(reverse("register_activation", kwargs={'key': activation_key}))
+        message = _("This is a confirmation that your registration on %s succeeded. To activate your 
account, please click on the link below or copy and paste it in a browser.") % site_domain
+        message += "\n\nhttps://%s%s\n\n"; % (site_domain, activation_url)
+        message += _("Administrators of %s" % site_domain)
         send_mail(_('Account activation'), message, to=[email])
         return new_user
 
@@ -99,12 +100,13 @@ class DetailForm(forms.ModelForm):
 
     def clean_image(self):
         url = self.cleaned_data['image']
-        if not url:
-            return
-        size = get_image_size(url)
-        if size[0]>100 or size[1]>100:
-            raise ValidationError(_("Image too high or too wide (%(width)d×%(height)d, maximum is 100×100 
pixels)") % {
-                'width': size[0], 'height': size[1]})
+        if url:
+            size = get_image_size(url)
+            if size[0] > 100 or size[1] > 100:
+                raise ValidationError(_(
+                    "Image too high or too wide (%(width)d×%(height)d, maximum is 100×100 pixels)") % {
+                    'width': size[0], 'height': size[1]
+                })
         return url
 
 
@@ -123,8 +125,6 @@ class TeamJoinForm(forms.Form):
 def get_image_size(url):
     """ Returns width and height (as tuple) of the image poited at by the url
         Code partially copied from http://effbot.org/zone/pil-image-size.htm """
-    from PIL import ImageFile
-
     try:
         im_file = urlopen(url)
     except (IOError, InvalidURL, EOFError, ValueError):
diff --git a/people/models.py b/people/models.py
index 60e02239..ebdde369 100644
--- a/people/models.py
+++ b/people/models.py
@@ -11,6 +11,7 @@ from django.utils.html import escape
 from django.utils.safestring import mark_safe
 from django.utils.translation import gettext_lazy as _
 
+
 AVATAR_SERVICES = {
     'gravatar.com': 'https://secure.gravatar.com/avatar/{hash}.jpg?{qs}',
     # See https://wiki.libravatar.org/api/
@@ -31,11 +32,13 @@ class Person(User):
 
     auth_token = models.CharField(_("Authentication Token"), max_length=40, blank=True)
     svn_account = models.SlugField(max_length=20, null=True, blank=True)
-    image = models.URLField(_("Image"), null=True, blank=True,
-                            help_text=_("URL to an image file (.jpg, .png, …) of an hackergotchi (max. 
100×100 pixels)"))
+    image = models.URLField(
+        _("Image"), null=True, blank=True,
+        help_text=_("URL to an image file (.jpg, .png, …) of an hackergotchi (max. 100×100 pixels)")
+    )
     avatar_service = models.CharField(
         _("Avatar provider"), max_length=50, blank=True,
-        choices=((name, name) for name in AVATAR_SERVICES.keys())
+        choices=((name, name) for name in AVATAR_SERVICES)
     )
     webpage_url = models.URLField(_("Web page"), null=True, blank=True)
     irc_nick = models.SlugField(_("IRC nickname"), max_length=20, null=True, blank=True)
@@ -50,8 +53,10 @@ class Person(User):
 
     @classmethod
     def clean_unactivated_accounts(cls):
-        accounts = cls.objects.filter(activation_key__isnull=False,
-                                      
date_joined__lt=(datetime.datetime.now()-datetime.timedelta(days=10))).exclude(activation_key='')
+        accounts = cls.objects.filter(
+            activation_key__isnull=False,
+            date_joined__lt=(datetime.datetime.now()-datetime.timedelta(days=10))
+        ).exclude(activation_key='')
         for account in accounts:
             account.delete()
 
@@ -116,8 +121,7 @@ class Person(User):
     def name(self):
         if self.first_name or self.last_name:
             return " ".join([name for name in [self.first_name, self.last_name] if name])
-        else:
-            return self.username
+        return self.username
 
     def __str__(self):
         return self.name
@@ -129,6 +133,8 @@ class Person(User):
         return reverse('person_detail_username', args=[self.username])
 
     def coordinates_teams(self):
+        # Class imported here to avoid cyclic import
+        # pylint: disable=import-outside-toplevel
         from teams.models import Team
         return Team.objects.filter(role__person__id=self.id).all()
 
@@ -139,12 +145,11 @@ class Person(User):
         """
         if team == 'any':
             return self.role_set.filter(role='coordinator').exists()
-        else:
-            try:
-                self.role_set.get(team__id=team.id, role='coordinator')
-                return True
-            except (ObjectDoesNotExist, AttributeError):
-                return False
+        try:
+            self.role_set.get(team__id=team.id, role='coordinator')
+            return True
+        except (ObjectDoesNotExist, AttributeError):
+            return False
 
     def is_committer(self, team):
         try:
diff --git a/people/templatetags/people.py b/people/templatetags/people.py
index a67054d8..820be09c 100644
--- a/people/templatetags/people.py
+++ b/people/templatetags/people.py
@@ -1,7 +1,6 @@
 import hashlib
 
 from django import template
-from django.conf import settings
 from django.templatetags.static import static
 from django.utils.html import format_html, format_html_join
 from django.utils.http import urlencode
diff --git a/people/views.py b/people/views.py
index c6a31957..52d08b7f 100644
--- a/people/views.py
+++ b/people/views.py
@@ -28,6 +28,7 @@ class PeopleListView(ListView):
         context['pageSection'] = "teams"
         return context
 
+
 class PersonDetailView(DetailView):
     model = Person
     slug_field = 'username'
@@ -36,7 +37,9 @@ class PersonDetailView(DetailView):
     def get_context_data(self, **kwargs):
         context = super().get_context_data(**kwargs)
         states = State.objects.filter(action__person=self.object).distinct()
-        all_languages = [(lg[0], LANG_INFO.get(lg[0], {'name_local': lg[1]})['name_local']) for lg in 
settings.LANGUAGES]
+        all_languages = [
+            (lg[0], LANG_INFO.get(lg[0], {'name_local': lg[1]})['name_local']) for lg in settings.LANGUAGES
+        ]
         all_languages = lc_sorted(all_languages, key=itemgetter(1))
         context.update({
             'pageSection': "teams",
@@ -46,26 +49,28 @@ class PersonDetailView(DetailView):
         })
         return context
 
+
 class PersonEditView(UpdateView):
     model = Person
     slug_field = 'username'
     form_class = DetailForm
     template_name = 'people/person_detail_change_form.html'
 
-    def get_object(self):
+    def get_object(self, **kwargs):
         self.kwargs['slug'] = self.request.user.username
         return super().get_object()
 
     def get_context_data(self, **kwargs):
         context = super().get_context_data(**kwargs)
         context['pageSection'] = "teams"
-        context['on_own_page'] = self.object.username == self.request.user.username,
+        context['on_own_page'] = self.object.username == self.request.user.username
         return context
 
     def form_invalid(self, form):
         messages.error(self.request, _("Sorry, the form is not valid."))
         return super().form_invalid(form)
 
+
 @login_required
 def person_team_join(request):
     """Handle the form to join a team"""
@@ -97,6 +102,7 @@ def person_team_join(request):
     }
     return render(request, 'people/person_team_join_form.html', context)
 
+
 @login_required
 @require_POST
 def person_team_leave(request, team_slug):
@@ -114,6 +120,7 @@ def person_team_leave(request, team_slug):
         reverse('person_detail_username', args=(person.username,))
     )
 
+
 @login_required
 def person_password_change(request):
     """Handle the generic form to change the password"""


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]