From 00af109e2fe0c9c6ed7366900c1a0d07812ebda0 Mon Sep 17 00:00:00 2001 From: Thomas Steen Rasmussen Date: Wed, 12 Feb 2020 13:10:41 +0100 Subject: [PATCH] add flake8 and isort to pre-commit config, make flake8 and isort happy (#441) * add flake8 to pre-commit config, and fixup many things to make flake8 happy * add isort and sort all imports, add to pre-commit and requirements --- .flake8 | 4 ++ .isort.cfg | 7 +++ .pre-commit-config.yaml | 9 +++- .../templates/chain_list_backoffice.html | 2 +- .../templates/expense_list_backoffice.html | 2 +- .../reimbursement_list_backoffice.html | 2 +- .../templates/revenue_list_backoffice.html | 2 +- src/backoffice/urls.py | 34 ++++++++++-- src/backoffice/views.py | 29 ++++++---- src/bar/admin.py | 3 +- src/bar/migrations/0001_initial.py | 2 +- src/bar/migrations/0002_auto_20170916_2128.py | 2 +- src/bar/migrations/0003_auto_20180318_0906.py | 2 +- src/bar/models.py | 1 + src/bar/views.py | 6 ++- src/bornhack/asgi.py | 1 + src/bornhack/routing.py | 5 +- src/bornhack/schema.py | 4 +- src/bornhack/urls.py | 19 ++++--- src/camps/admin.py | 1 + src/camps/factories.py | 1 - src/camps/management/commands/createcamp.py | 5 +- src/camps/migrations/0001_initial.py | 3 +- .../migrations/0002_auto_20160117_1718.py | 2 +- .../migrations/0007_auto_20161212_1803.py | 3 +- .../migrations/0009_auto_20161220_1645.py | 1 + src/camps/mixins.py | 4 +- src/camps/models.py | 19 +++---- src/camps/utils.py | 5 +- src/camps/views.py | 16 +++--- src/economy/admin.py | 15 +++--- src/economy/forms.py | 4 +- src/economy/migrations/0001_initial.py | 5 +- src/economy/migrations/0002_revenue.py | 5 +- .../migrations/0003_auto_20180917_1933.py | 2 +- .../migrations/0004_auto_20181120_1835.py | 2 +- .../migrations/0008_auto_20190327_1721.py | 5 +- .../migrations/0010_auto_20190330_1045.py | 2 +- src/economy/mixins.py | 4 +- src/economy/models.py | 26 +++++---- src/economy/templates/dashboard.html | 2 +- src/economy/templates/expense_list.html | 2 +- src/economy/templates/reimbursement_list.html | 2 +- src/economy/templates/revenue_list.html | 2 +- src/economy/urls.py | 25 ++++++++- src/economy/views.py | 45 ++++++++++------ src/events/admin.py | 3 +- src/events/handler.py | 6 +-- src/events/migrations/0001_initial.py | 2 +- src/events/models.py | 3 +- src/events/tests.py | 3 -- src/events/views.py | 3 -- src/feedback/migrations/0001_initial.py | 5 +- src/feedback/migrations/0002_feedback_camp.py | 2 +- src/feedback/models.py | 2 +- src/feedback/tests.py | 3 -- src/feedback/views.py | 1 + src/info/admin.py | 3 +- src/info/migrations/0001_initial.py | 2 +- src/info/migrations/0004_infocategory_team.py | 2 +- .../0005_add_teams_to_categories.py | 2 +- .../migrations/0006_auto_20180520_1113.py | 2 +- .../migrations/0007_auto_20180520_1511.py | 2 +- src/info/models.py | 8 +-- src/info/views.py | 4 +- src/ircbot/admin.py | 1 + src/ircbot/irc3module.py | 24 ++++----- src/ircbot/ircworker.py | 6 +-- .../0002_outgoingircmessage_timeout.py | 1 + src/ircbot/models.py | 3 +- src/ircbot/utils.py | 6 +-- src/news/models.py | 2 +- src/news/urls.py | 1 + src/news/views.py | 4 +- src/people/views.py | 1 + src/profiles/admin.py | 1 + src/profiles/apps.py | 8 +-- src/profiles/migrations/0001_initial.py | 5 +- src/profiles/models.py | 2 +- src/profiles/signal_handlers.py | 4 +- src/profiles/views.py | 6 +-- src/program/admin.py | 11 ++-- src/program/apps.py | 2 +- src/program/consumers.py | 5 +- src/program/email.py | 5 +- src/program/forms.py | 2 +- .../commands/notification_worker.py | 20 +++---- src/program/migrations/0001_initial.py | 2 +- .../migrations/0010_auto_20161212_1809.py | 2 +- .../migrations/0013_auto_20170121_1312.py | 2 +- src/program/migrations/0014_speaker_camp.py | 2 +- .../migrations/0019_auto_20170205_1940.py | 2 +- .../migrations/0020_auto_20170205_1940.py | 2 +- .../migrations/0023_auto_20170218_1243.py | 1 + src/program/migrations/0026_speaker_user.py | 2 +- .../migrations/0030_auto_20170312_1230.py | 6 ++- .../migrations/0033_auto_20170312_1857.py | 6 ++- .../migrations/0034_auto_20170314_2012.py | 1 + .../migrations/0036_auto_20170316_0004.py | 1 + src/program/migrations/0038_favorite.py | 2 +- src/program/migrations/0045_event_proposal.py | 2 +- .../migrations/0046_auto_20180318_0906.py | 2 +- .../migrations/0047_auto_20180415_1159.py | 2 +- .../migrations/0048_auto_20180512_1625.py | 2 +- .../migrations/0051_auto_20180512_1801.py | 2 +- .../migrations/0055_auto_20180521_2354.py | 2 +- .../migrations/0059_auto_20180523_2241.py | 3 +- .../migrations/0060_auto_20180603_1455.py | 2 +- .../migrations/0061_auto_20180603_1525.py | 2 +- src/program/mixins.py | 11 ++-- src/program/models.py | 30 +++++------ src/program/multiform.py | 8 +-- src/program/schema.py | 5 +- src/program/signal_handlers.py | 7 --- .../templates/noscript_schedule_view.html | 2 +- src/program/templates/schedule_day.html | 2 +- src/program/templates/schedule_overview.html | 2 +- src/program/urls.py | 34 +++++++++++- src/program/views.py | 46 ++++++++-------- src/requirements/dev.txt | 1 + src/rideshare/migrations/0001_initial.py | 5 +- src/rideshare/models.py | 2 +- .../templates/rideshare/ride_list.html | 2 +- src/rideshare/tests.py | 3 -- src/rideshare/urls.py | 4 +- src/rideshare/views.py | 10 ++-- src/shop/admin.py | 9 ++-- src/shop/apps.py | 3 +- src/shop/coinify.py | 12 +++-- src/shop/email.py | 3 +- src/shop/epay.py | 1 + src/shop/factories.py | 5 +- src/shop/invoiceworker.py | 8 +-- src/shop/migrations/0001_initial.py | 7 +-- .../migrations/0004_auto_20160515_1604.py | 2 +- .../migrations/0008_auto_20160516_0954.py | 1 + .../migrations/0010_auto_20160517_1313.py | 2 +- src/shop/migrations/0012_ticket.py | 5 +- .../0015_coinifyapiinvoice_coinifycallback.py | 2 +- .../migrations/0022_auto_20160530_2301.py | 2 +- src/shop/migrations/0025_creditnote.py | 2 +- .../migrations/0027_auto_20160712_2036.py | 2 +- .../migrations/0042_auto_20170507_1000.py | 2 +- .../migrations/0043_auto_20170507_1309.py | 2 +- .../migrations/0048_product_ticket_type.py | 2 +- .../migrations/0050_auto_20170916_1336.py | 2 +- .../migrations/0053_auto_20180318_0906.py | 2 +- .../migrations/0054_auto_20180415_1159.py | 2 +- src/shop/models.py | 23 ++++---- src/shop/templatetags/shop_tags.py | 3 +- src/shop/tests.py | 5 +- src/shop/urls.py | 23 +++++++- src/shop/views.py | 25 ++++----- src/sponsors/email.py | 2 +- .../commands/email_sponsor_tickets.py | 3 +- src/sponsors/migrations/0001_initial.py | 1 + .../migrations/0002_auto_20170711_2341.py | 2 +- .../migrations/0003_sponsortier_camp.py | 2 +- .../migrations/0007_auto_20180318_0906.py | 2 +- src/sponsors/views.py | 3 +- src/teams/admin.py | 6 ++- src/teams/apps.py | 5 +- src/teams/email.py | 3 +- src/teams/migrations/0001_initial.py | 2 +- src/teams/migrations/0004_team_sub_team_of.py | 2 +- .../migrations/0005_auto_20170402_1331.py | 2 +- .../migrations/0006_auto_20170402_1331.py | 2 +- .../migrations/0009_auto_20170402_1607.py | 2 +- .../migrations/0013_auto_20170523_2046.py | 2 +- .../migrations/0016_auto_20170711_2247.py | 2 +- .../migrations/0017_auto_20171122_1928.py | 2 +- .../migrations/0018_auto_20171122_2204.py | 2 +- .../migrations/0020_auto_20180304_1233.py | 2 +- .../migrations/0021_auto_20180318_0906.py | 2 +- src/teams/migrations/0026_team_camp.py | 2 +- src/teams/migrations/0027_fixup_teams.py | 3 -- .../migrations/0028_auto_20180331_1416.py | 2 +- .../migrations/0032_auto_20180402_2148.py | 2 +- .../migrations/0037_auto_20180408_1416.py | 2 +- .../migrations/0043_auto_20180702_1338.py | 2 +- src/teams/migrations/0047_taskcomment.py | 5 +- src/teams/models.py | 10 ++-- src/teams/signal_handlers.py | 5 +- src/teams/templatetags/teams_tags.py | 3 +- src/teams/urls.py | 53 +++++++++---------- src/teams/views/base.py | 17 +++--- src/teams/views/guide.py | 2 +- src/teams/views/info.py | 5 +- src/teams/views/members.py | 10 ++-- src/teams/views/shifts.py | 25 +++++---- src/teams/views/tasks.py | 10 ++-- src/tickets/admin.py | 3 +- src/tickets/apps.py | 4 +- src/tickets/factories.py | 1 - src/tickets/migrations/0001_initial.py | 5 +- .../migrations/0002_auto_20170819_2222.py | 2 +- .../migrations/0005_auto_20180318_0906.py | 2 +- src/tickets/models.py | 11 ++-- src/tickets/signals.py | 6 +-- src/tickets/templatetags/tickets_tags.py | 3 +- src/tickets/tests.py | 1 + src/tickets/urls.py | 2 +- src/tickets/views.py | 4 +- src/tokens/admin.py | 5 +- src/tokens/migrations/0001_initial.py | 2 +- src/tokens/migrations/0002_tokenfind.py | 2 +- src/tokens/models.py | 1 + src/tokens/urls.py | 5 +- src/tokens/views.py | 4 +- src/utils/email.py | 11 ++-- .../management/commands/bootstrap-devsite.py | 41 +++++++------- .../commands/run_managepy_worker.py | 11 ++-- src/utils/mixins.py | 2 +- src/utils/models.py | 5 +- src/utils/outgoingemailworker.py | 5 +- src/utils/pdf.py | 10 ++-- src/utils/templatetags/bornhack.py | 2 - src/utils/templatetags/commonmark.py | 5 +- src/villages/migrations/0001_initial.py | 5 +- src/villages/migrations/0007_village_camp.py | 2 +- .../migrations/0008_auto_20161228_2209.py | 2 +- .../migrations/0011_auto_20180318_0906.py | 2 +- src/villages/mixins.py | 2 +- src/villages/models.py | 5 +- src/villages/urls.py | 8 ++- src/villages/views.py | 15 +++--- 226 files changed, 755 insertions(+), 553 deletions(-) create mode 100644 .flake8 create mode 100644 .isort.cfg delete mode 100644 src/events/tests.py delete mode 100644 src/events/views.py delete mode 100644 src/feedback/tests.py delete mode 100644 src/rideshare/tests.py diff --git a/.flake8 b/.flake8 new file mode 100644 index 00000000..32ca9a99 --- /dev/null +++ b/.flake8 @@ -0,0 +1,4 @@ +[flake8] +max-line-length = 88 +ignore = E501 W503 + diff --git a/.isort.cfg b/.isort.cfg new file mode 100644 index 00000000..a444a042 --- /dev/null +++ b/.isort.cfg @@ -0,0 +1,7 @@ +[settings] +multi_line_output=3 +include_trailing_comma=True +force_grid_wrap=0 +use_parentheses=True +line_length=88 + diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 515c10f9..5c993f52 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -4,4 +4,11 @@ repos: hooks: - id: "black" language_version: "python3.7" - + - repo: "https://github.com/pre-commit/pre-commit-hooks" + rev: "v2.3.0" + hooks: + - id: "flake8" + - repo: "https://github.com/pre-commit/mirrors-isort" + rev: "v4.3.21" + hooks: + - id: "isort" diff --git a/src/backoffice/templates/chain_list_backoffice.html b/src/backoffice/templates/chain_list_backoffice.html index afe629f4..87440018 100644 --- a/src/backoffice/templates/chain_list_backoffice.html +++ b/src/backoffice/templates/chain_list_backoffice.html @@ -1,5 +1,5 @@ {% extends 'base.html' %} -{% load staticfiles %} +{% load static %} {% load bootstrap3 %} {% block extra_head %} diff --git a/src/backoffice/templates/expense_list_backoffice.html b/src/backoffice/templates/expense_list_backoffice.html index cd90805d..4af1d732 100644 --- a/src/backoffice/templates/expense_list_backoffice.html +++ b/src/backoffice/templates/expense_list_backoffice.html @@ -1,5 +1,5 @@ {% extends 'base.html' %} -{% load staticfiles %} +{% load static %} {% block extra_head %} diff --git a/src/backoffice/templates/reimbursement_list_backoffice.html b/src/backoffice/templates/reimbursement_list_backoffice.html index f0519888..18296392 100644 --- a/src/backoffice/templates/reimbursement_list_backoffice.html +++ b/src/backoffice/templates/reimbursement_list_backoffice.html @@ -1,5 +1,5 @@ {% extends 'base.html' %} -{% load staticfiles %} +{% load static %} {% block extra_head %} diff --git a/src/backoffice/templates/revenue_list_backoffice.html b/src/backoffice/templates/revenue_list_backoffice.html index cd18fbbe..88a398aa 100644 --- a/src/backoffice/templates/revenue_list_backoffice.html +++ b/src/backoffice/templates/revenue_list_backoffice.html @@ -1,5 +1,5 @@ {% extends 'base.html' %} -{% load staticfiles %} +{% load static %} {% block extra_head %} diff --git a/src/backoffice/urls.py b/src/backoffice/urls.py index 1a06abb8..b24d15e5 100644 --- a/src/backoffice/urls.py +++ b/src/backoffice/urls.py @@ -1,6 +1,34 @@ -from django.urls import path, include -from .views import * +from django.urls import include, path +from .views import ( + ApproveNamesView, + BackofficeIndexView, + BadgeHandoutView, + ChainDetailView, + ChainListView, + CredebtorDetailView, + EventProposalManageView, + ExpenseDetailView, + ExpenseListView, + ManageProposalsView, + MerchandiseOrdersView, + MerchandiseToOrderView, + ProductHandoutView, + ReimbursementCreateUserSelectView, + ReimbursementCreateView, + ReimbursementDeleteView, + ReimbursementDetailView, + ReimbursementListView, + ReimbursementUpdateView, + RevenueDetailView, + RevenueListView, + ScanTicketsView, + ShopTicketOverview, + SpeakerProposalManageView, + TicketCheckinView, + VillageOrdersView, + VillageToOrderView, +) app_name = "backoffice" @@ -9,7 +37,7 @@ urlpatterns = [ # infodesk path( "infodesk/", - include([path("", ScanTicketsView.as_view(), name="scan_tickets"),]), + include([path("", ScanTicketsView.as_view(), name="scan_tickets")]), ), path("shop_tickets/", ShopTicketOverview.as_view(), name="shop_ticket_overview"), path("product_handout/", ProductHandoutView.as_view(), name="product_handout"), diff --git a/src/backoffice/views.py b/src/backoffice/views.py index 4185ffcd..322ea296 100644 --- a/src/backoffice/views.py +++ b/src/backoffice/views.py @@ -8,20 +8,27 @@ from django.contrib.auth.mixins import LoginRequiredMixin from django.contrib.auth.models import User from django.core.files import File from django.db.models import Sum -from django.shortcuts import redirect, get_object_or_404 +from django.shortcuts import get_object_or_404, redirect from django.urls import reverse from django.utils import timezone -from django.views.generic import TemplateView, ListView, DetailView -from django.views.generic.edit import CreateView, UpdateView, DeleteView +from django.views.generic import DetailView, ListView, TemplateView +from django.views.generic.edit import CreateView, DeleteView, UpdateView from camps.mixins import CampViewMixin from economy.models import Chain, Credebtor, Expense, Reimbursement, Revenue from profiles.models import Profile -from program.models import SpeakerProposal, EventProposal -from shop.models import OrderProductRelation, Order +from program.models import EventProposal, SpeakerProposal +from shop.models import Order, OrderProductRelation from teams.models import Team -from tickets.models import ShopTicket, SponsorTicket, DiscountTicket, TicketType -from .mixins import * +from tickets.models import DiscountTicket, ShopTicket, SponsorTicket, TicketType + +from .mixins import ( + ContentTeamPermissionMixin, + EconomyTeamPermissionMixin, + InfoTeamPermissionMixin, + OrgaTeamPermissionMixin, + RaisePermissionRequiredMixin, +) logger = logging.getLogger("bornhack.%s" % __name__) @@ -236,7 +243,7 @@ class VillageToOrderView(CampViewMixin, OrgaTeamPermissionMixin, TemplateView): ################################ -###### CHAINS & CREDEBTORS ##### +# CHAINS & CREDEBTORS class ChainListView(CampViewMixin, EconomyTeamPermissionMixin, ListView): @@ -257,7 +264,7 @@ class CredebtorDetailView(CampViewMixin, EconomyTeamPermissionMixin, DetailView) ################################ -########### EXPENSES ########### +# EXPENSES class ExpenseListView(CampViewMixin, EconomyTeamPermissionMixin, ListView): @@ -306,7 +313,7 @@ class ExpenseDetailView(CampViewMixin, EconomyTeamPermissionMixin, UpdateView): ###################################### -########### REIMBURSEMENTS ########### +# REIMBURSEMENTS class ReimbursementListView(CampViewMixin, EconomyTeamPermissionMixin, ListView): @@ -497,7 +504,7 @@ class ReimbursementDeleteView(CampViewMixin, EconomyTeamPermissionMixin, DeleteV ################################ -########### REVENUES ########### +# REVENUES class RevenueListView(CampViewMixin, EconomyTeamPermissionMixin, ListView): diff --git a/src/bar/admin.py b/src/bar/admin.py index 4fd383da..a7a40753 100644 --- a/src/bar/admin.py +++ b/src/bar/admin.py @@ -1,5 +1,6 @@ from django.contrib import admin -from .models import ProductCategory, Product + +from .models import Product, ProductCategory @admin.register(ProductCategory) diff --git a/src/bar/migrations/0001_initial.py b/src/bar/migrations/0001_initial.py index e7e39432..ec04f827 100644 --- a/src/bar/migrations/0001_initial.py +++ b/src/bar/migrations/0001_initial.py @@ -2,8 +2,8 @@ # Generated by Django 1.10.5 on 2017-08-25 23:28 from __future__ import unicode_literals -from django.db import migrations, models import django.db.models.deletion +from django.db import migrations, models class Migration(migrations.Migration): diff --git a/src/bar/migrations/0002_auto_20170916_2128.py b/src/bar/migrations/0002_auto_20170916_2128.py index c4796e43..82d1df38 100644 --- a/src/bar/migrations/0002_auto_20170916_2128.py +++ b/src/bar/migrations/0002_auto_20170916_2128.py @@ -2,8 +2,8 @@ # Generated by Django 1.10.5 on 2017-09-16 19:28 from __future__ import unicode_literals -from django.db import migrations, models import django.db.models.deletion +from django.db import migrations, models class Migration(migrations.Migration): diff --git a/src/bar/migrations/0003_auto_20180318_0906.py b/src/bar/migrations/0003_auto_20180318_0906.py index eb353e6d..d79a45c6 100644 --- a/src/bar/migrations/0003_auto_20180318_0906.py +++ b/src/bar/migrations/0003_auto_20180318_0906.py @@ -2,8 +2,8 @@ # Generated by Django 1.10.5 on 2018-03-18 08:06 from __future__ import unicode_literals -from django.db import migrations, models import django.db.models.deletion +from django.db import migrations, models class Migration(migrations.Migration): diff --git a/src/bar/models.py b/src/bar/models.py index 30d315cf..0694ed4f 100644 --- a/src/bar/models.py +++ b/src/bar/models.py @@ -1,4 +1,5 @@ from django.db import models + from utils.models import CampRelatedModel diff --git a/src/bar/views.py b/src/bar/views.py index a5e3acf8..6b4ebc63 100644 --- a/src/bar/views.py +++ b/src/bar/views.py @@ -1,7 +1,9 @@ -from camps.mixins import CampViewMixin -from .models import ProductCategory from django.views.generic import ListView +from camps.mixins import CampViewMixin + +from .models import ProductCategory + class MenuView(CampViewMixin, ListView): model = ProductCategory diff --git a/src/bornhack/asgi.py b/src/bornhack/asgi.py index 71715143..34df5da8 100644 --- a/src/bornhack/asgi.py +++ b/src/bornhack/asgi.py @@ -3,6 +3,7 @@ ASGI entrypoint. Configures Django and then runs the application defined in the ASGI_APPLICATION setting. """ import os + import django from channels.routing import get_default_application diff --git a/src/bornhack/routing.py b/src/bornhack/routing.py index 67c41503..672f3a1f 100644 --- a/src/bornhack/routing.py +++ b/src/bornhack/routing.py @@ -1,10 +1,9 @@ +from channels.auth import AuthMiddlewareStack +from channels.routing import ProtocolTypeRouter, URLRouter from django.conf.urls import url -from channels.routing import ProtocolTypeRouter, URLRouter -from channels.auth import AuthMiddlewareStack from program.consumers import ScheduleConsumer - application = ProtocolTypeRouter( { "websocket": AuthMiddlewareStack( diff --git a/src/bornhack/schema.py b/src/bornhack/schema.py index 87822abc..0eba4bfe 100644 --- a/src/bornhack/schema.py +++ b/src/bornhack/schema.py @@ -1,10 +1,8 @@ -from graphene import relay, Schema, ObjectType - +from graphene import ObjectType, Schema, relay from graphene_django import DjangoObjectType from graphene_django.filter import DjangoFilterConnectionField from camps.models import Camp - from program.schema import ProgramQuery diff --git a/src/bornhack/urls.py b/src/bornhack/urls.py index 58dacb0f..3cc9b032 100644 --- a/src/bornhack/urls.py +++ b/src/bornhack/urls.py @@ -1,19 +1,26 @@ from allauth.account.views import LoginView, LogoutView +from django.conf import settings from django.conf.urls import include from django.contrib import admin from django.contrib.auth.decorators import login_required from django.urls import path from django.views.decorators.csrf import csrf_exempt +from django.views.generic import TemplateView from graphene_django.views import GraphQLView from bar.views import MenuView -from camps.views import * +from camps.views import CampDetailView, CampListView, CampRedirectView from feedback.views import FeedbackCreate -from info.views import * -from people.views import * -from program.views import * -from sponsors.views import * -from villages.views import * +from info.views import CampInfoView +from people.views import PeopleView +from sponsors.views import SponsorsView +from villages.views import ( + VillageCreateView, + VillageDeleteView, + VillageDetailView, + VillageListView, + VillageUpdateView, +) # require 2fa token entry (if enabled on admin account) when logging into /admin by using allauth login form admin.site.login = login_required(admin.site.login) diff --git a/src/camps/admin.py b/src/camps/admin.py index 689f4d21..6a02bb40 100644 --- a/src/camps/admin.py +++ b/src/camps/admin.py @@ -1,4 +1,5 @@ from django.contrib import admin + from . import models diff --git a/src/camps/factories.py b/src/camps/factories.py index ae47f5b4..8edec112 100644 --- a/src/camps/factories.py +++ b/src/camps/factories.py @@ -1,6 +1,5 @@ import factory from django.utils import timezone - from factory.django import DjangoModelFactory from psycopg2._range import DateTimeTZRange diff --git a/src/camps/management/commands/createcamp.py b/src/camps/management/commands/createcamp.py index 4a5ff757..4f49d01b 100644 --- a/src/camps/management/commands/createcamp.py +++ b/src/camps/management/commands/createcamp.py @@ -1,8 +1,9 @@ # coding: utf-8 +import os + +from django.conf import settings from django.core.management.base import BaseCommand from django.utils import timezone -from django.conf import settings -import os class Command(BaseCommand): diff --git a/src/camps/migrations/0001_initial.py b/src/camps/migrations/0001_initial.py index f00a8c61..c01e7442 100644 --- a/src/camps/migrations/0001_initial.py +++ b/src/camps/migrations/0001_initial.py @@ -1,9 +1,10 @@ # -*- coding: utf-8 -*- -from django.db import models, migrations import uuid + from django.conf import settings +from django.db import migrations, models class Migration(migrations.Migration): diff --git a/src/camps/migrations/0002_auto_20160117_1718.py b/src/camps/migrations/0002_auto_20160117_1718.py index 347c60df..5d16d80d 100644 --- a/src/camps/migrations/0002_auto_20160117_1718.py +++ b/src/camps/migrations/0002_auto_20160117_1718.py @@ -2,8 +2,8 @@ # Generated by Django 1.9.1 on 2016-01-17 17:18 -from django.db import migrations, models import django.db.models.deletion +from django.db import migrations, models class Migration(migrations.Migration): diff --git a/src/camps/migrations/0007_auto_20161212_1803.py b/src/camps/migrations/0007_auto_20161212_1803.py index 3d31a451..16d5cc9e 100644 --- a/src/camps/migrations/0007_auto_20161212_1803.py +++ b/src/camps/migrations/0007_auto_20161212_1803.py @@ -3,9 +3,10 @@ import datetime + +import django.db.models.deletion from django.conf import settings from django.db import migrations, models -import django.db.models.deletion from django.utils.timezone import utc diff --git a/src/camps/migrations/0009_auto_20161220_1645.py b/src/camps/migrations/0009_auto_20161220_1645.py index 02682fb2..5eb2dc1e 100644 --- a/src/camps/migrations/0009_auto_20161220_1645.py +++ b/src/camps/migrations/0009_auto_20161220_1645.py @@ -3,6 +3,7 @@ import datetime + from django.db import migrations, models from django.utils.timezone import utc diff --git a/src/camps/mixins.py b/src/camps/mixins.py index e91bcf97..dafa8c67 100644 --- a/src/camps/mixins.py +++ b/src/camps/mixins.py @@ -1,6 +1,6 @@ -from camps.models import Camp from django.shortcuts import get_object_or_404 -from django.utils.functional import cached_property + +from camps.models import Camp class CampViewMixin(object): diff --git a/src/camps/models.py b/src/camps/models.py index 3e15d424..cfb06e84 100644 --- a/src/camps/models.py +++ b/src/camps/models.py @@ -1,13 +1,14 @@ -from django.db import models -from utils.models import UUIDModel, CreatedUpdatedModel -from program.models import EventType, EventLocation -from django.contrib.postgres.fields import DateTimeRangeField -from psycopg2.extras import DateTimeTZRange -from django.core.exceptions import ValidationError -from datetime import timedelta -from django.utils import timezone -from django.urls import reverse import logging +from datetime import timedelta + +from django.contrib.postgres.fields import DateTimeRangeField +from django.core.exceptions import ValidationError +from django.db import models +from django.urls import reverse +from psycopg2.extras import DateTimeTZRange + +from program.models import EventLocation, EventType +from utils.models import CreatedUpdatedModel, UUIDModel logger = logging.getLogger("bornhack.%s" % __name__) diff --git a/src/camps/utils.py b/src/camps/utils.py index 81212b7f..5958a16b 100644 --- a/src/camps/utils.py +++ b/src/camps/utils.py @@ -1,6 +1,7 @@ -from camps.models import Camp -from django.utils import timezone from django.contrib import admin +from django.utils import timezone + +from camps.models import Camp def get_current_camp(): diff --git a/src/camps/views.py b/src/camps/views.py index 31083555..f975c90f 100644 --- a/src/camps/views.py +++ b/src/camps/views.py @@ -1,12 +1,14 @@ -from django.views.generic import ListView, DetailView -from django.utils import timezone -from .models import Camp -from django.shortcuts import redirect -from .mixins import CampViewMixin -from django.views import View -from django.conf import settings import logging +from django.conf import settings +from django.shortcuts import redirect +from django.utils import timezone +from django.views import View +from django.views.generic import DetailView, ListView + +from .mixins import CampViewMixin +from .models import Camp + logger = logging.getLogger("bornhack.%s" % __name__) diff --git a/src/economy/admin.py b/src/economy/admin.py index d4d2741d..d5360d52 100644 --- a/src/economy/admin.py +++ b/src/economy/admin.py @@ -2,8 +2,8 @@ from django.contrib import admin from .models import Chain, Credebtor, Expense, Reimbursement, Revenue - -### chains and credebtors +############################### +# chains and credebtors @admin.register(Chain) @@ -14,13 +14,14 @@ class ChainAdmin(admin.ModelAdmin): @admin.register(Credebtor) -class ChainAdmin(admin.ModelAdmin): +class CredebtorAdmin(admin.ModelAdmin): list_filter = ["chain", "name"] list_display = ["chain", "name", "notes"] search_fields = ["chain", "name", "notes"] -### expenses +############################### +# expenses def approve_expenses(modeladmin, request, queryset): @@ -64,7 +65,8 @@ class ExpenseAdmin(admin.ModelAdmin): actions = [approve_expenses, reject_expenses] -### revenues +############################### +# revenues def approve_revenues(modeladmin, request, queryset): @@ -99,7 +101,8 @@ class RevenueAdmin(admin.ModelAdmin): actions = [approve_revenues, reject_revenues] -### reimbursements +############################### +# reimbursements @admin.register(Reimbursement) diff --git a/src/economy/forms.py b/src/economy/forms.py index 4e40e918..c31a9dfb 100644 --- a/src/economy/forms.py +++ b/src/economy/forms.py @@ -1,6 +1,8 @@ -import os, magic, copy +import copy +import magic from django import forms + from .models import Expense, Revenue diff --git a/src/economy/migrations/0001_initial.py b/src/economy/migrations/0001_initial.py index 346d4276..5700525f 100644 --- a/src/economy/migrations/0001_initial.py +++ b/src/economy/migrations/0001_initial.py @@ -1,9 +1,10 @@ # Generated by Django 2.0.4 on 2018-08-29 22:14 +import uuid + +import django.db.models.deletion from django.conf import settings from django.db import migrations, models -import django.db.models.deletion -import uuid class Migration(migrations.Migration): diff --git a/src/economy/migrations/0002_revenue.py b/src/economy/migrations/0002_revenue.py index 275e08d7..1085feac 100644 --- a/src/economy/migrations/0002_revenue.py +++ b/src/economy/migrations/0002_revenue.py @@ -1,9 +1,10 @@ # Generated by Django 2.0.4 on 2018-09-16 13:27 +import uuid + +import django.db.models.deletion from django.conf import settings from django.db import migrations, models -import django.db.models.deletion -import uuid class Migration(migrations.Migration): diff --git a/src/economy/migrations/0003_auto_20180917_1933.py b/src/economy/migrations/0003_auto_20180917_1933.py index fb68778e..e6870582 100644 --- a/src/economy/migrations/0003_auto_20180917_1933.py +++ b/src/economy/migrations/0003_auto_20180917_1933.py @@ -1,7 +1,7 @@ # Generated by Django 2.0.4 on 2018-09-17 17:33 -from django.db import migrations, models import django.db.models.deletion +from django.db import migrations, models class Migration(migrations.Migration): diff --git a/src/economy/migrations/0004_auto_20181120_1835.py b/src/economy/migrations/0004_auto_20181120_1835.py index 0f3b2106..1a035868 100644 --- a/src/economy/migrations/0004_auto_20181120_1835.py +++ b/src/economy/migrations/0004_auto_20181120_1835.py @@ -1,8 +1,8 @@ # Generated by Django 2.1.3 on 2018-11-20 17:35 +import django.db.models.deletion from django.conf import settings from django.db import migrations, models -import django.db.models.deletion class Migration(migrations.Migration): diff --git a/src/economy/migrations/0008_auto_20190327_1721.py b/src/economy/migrations/0008_auto_20190327_1721.py index 3cc12c4e..59c91dd9 100644 --- a/src/economy/migrations/0008_auto_20190327_1721.py +++ b/src/economy/migrations/0008_auto_20190327_1721.py @@ -1,9 +1,10 @@ # Generated by Django 2.1.7 on 2019-03-27 16:21 -from django.db import migrations, models -import django.db.models.deletion import uuid +import django.db.models.deletion +from django.db import migrations, models + class Migration(migrations.Migration): diff --git a/src/economy/migrations/0010_auto_20190330_1045.py b/src/economy/migrations/0010_auto_20190330_1045.py index 6790f971..5183a7e0 100644 --- a/src/economy/migrations/0010_auto_20190330_1045.py +++ b/src/economy/migrations/0010_auto_20190330_1045.py @@ -1,7 +1,7 @@ # Generated by Django 2.1.7 on 2019-03-30 09:45 -from django.db import migrations, models import django.db.models.deletion +from django.db import migrations, models class Migration(migrations.Migration): diff --git a/src/economy/mixins.py b/src/economy/mixins.py index c7595e0b..f5962569 100644 --- a/src/economy/mixins.py +++ b/src/economy/mixins.py @@ -1,5 +1,5 @@ -from django.http import HttpResponseRedirect, Http404 -from django.shortcuts import redirect, get_object_or_404 +from django.http import Http404 +from django.shortcuts import get_object_or_404 from .models import Chain, Credebtor diff --git a/src/economy/models.py b/src/economy/models.py index df00ee24..265e5502 100644 --- a/src/economy/models.py +++ b/src/economy/models.py @@ -1,14 +1,20 @@ import os -from django.db import models -from django.conf import settings -from django.db import models from django.contrib import messages from django.core.exceptions import ValidationError +from django.db import models from django.utils.text import slugify from utils.models import CampRelatedModel, CreatedUpdatedModel, UUIDModel -from .email import * + +from .email import ( + send_accountingsystem_expense_email, + send_accountingsystem_revenue_email, + send_expense_approved_email, + send_expense_rejected_email, + send_revenue_approved_email, + send_revenue_rejected_email, +) class ChainManager(models.Manager): @@ -135,7 +141,7 @@ class Revenue(CampRelatedModel, UUIDModel): """ The Revenue model represents any type of income for BornHack. - Most Revenue objects will have a FK to the Invoice model, + Most Revenue objects will have a FK to the Invoice model, but only if the revenue relates directly to an Invoice in our system. Other Revenue objects (such as money returned from bottle deposits) will @@ -219,9 +225,9 @@ class Revenue(CampRelatedModel, UUIDModel): @property def approval_status(self): - if self.approved == None: + if self.approved is None: return "Pending approval" - elif self.approved == True: + elif self.approved: return "Approved" else: return "Rejected" @@ -350,9 +356,9 @@ class Expense(CampRelatedModel, UUIDModel): @property def approval_status(self): - if self.approved == None: + if self.approved is None: return "Pending approval" - elif self.approved == True: + elif self.approved: return "Approved" else: return "Rejected" @@ -400,7 +406,7 @@ class Expense(CampRelatedModel, UUIDModel): class Reimbursement(CampRelatedModel, UUIDModel): """ - A reimbursement covers one or more expenses. + A reimbursement covers one or more expenses. """ camp = models.ForeignKey( diff --git a/src/economy/templates/dashboard.html b/src/economy/templates/dashboard.html index 175ef064..2bd5ac18 100644 --- a/src/economy/templates/dashboard.html +++ b/src/economy/templates/dashboard.html @@ -1,5 +1,5 @@ {% extends 'base.html' %} -{% load staticfiles %} +{% load static %} {% block title %} Economy | {{ block.super }} diff --git a/src/economy/templates/expense_list.html b/src/economy/templates/expense_list.html index ab659626..c4c162ab 100644 --- a/src/economy/templates/expense_list.html +++ b/src/economy/templates/expense_list.html @@ -1,5 +1,5 @@ {% extends 'base.html' %} -{% load staticfiles %} +{% load static %} {% block title %} Expenses | {{ block.super }} diff --git a/src/economy/templates/reimbursement_list.html b/src/economy/templates/reimbursement_list.html index 823a824e..b3ae9b5e 100644 --- a/src/economy/templates/reimbursement_list.html +++ b/src/economy/templates/reimbursement_list.html @@ -1,5 +1,5 @@ {% extends 'base.html' %} -{% load staticfiles %} +{% load static %} {% block title %} Expenses | {{ block.super }} diff --git a/src/economy/templates/revenue_list.html b/src/economy/templates/revenue_list.html index 22848241..4afacf30 100644 --- a/src/economy/templates/revenue_list.html +++ b/src/economy/templates/revenue_list.html @@ -1,5 +1,5 @@ {% extends 'base.html' %} -{% load staticfiles %} +{% load static %} {% block title %} Revenues | {{ block.super }} diff --git a/src/economy/urls.py b/src/economy/urls.py index c17be40e..ccf71d2f 100644 --- a/src/economy/urls.py +++ b/src/economy/urls.py @@ -1,5 +1,26 @@ -from django.urls import path, include -from .views import * +from django.urls import include, path + +from .views import ( + ChainCreateView, + ChainListView, + CredebtorCreateView, + CredebtorListView, + EconomyDashboardView, + ExpenseCreateView, + ExpenseDeleteView, + ExpenseDetailView, + ExpenseInvoiceView, + ExpenseListView, + ExpenseUpdateView, + ReimbursementDetailView, + ReimbursementListView, + RevenueCreateView, + RevenueDeleteView, + RevenueDetailView, + RevenueInvoiceView, + RevenueListView, + RevenueUpdateView, +) app_name = "economy" diff --git a/src/economy/views.py b/src/economy/views.py index 48f371cd..7c9324bc 100644 --- a/src/economy/views.py +++ b/src/economy/views.py @@ -1,29 +1,40 @@ -import os, magic +import os -from django.shortcuts import render, redirect +import magic from django.conf import settings from django.contrib import messages from django.contrib.auth.mixins import LoginRequiredMixin -from django.http import HttpResponseRedirect, HttpResponse, Http404 +from django.db.models import Sum +from django.http import HttpResponse, HttpResponseRedirect +from django.shortcuts import redirect from django.urls import reverse from django.views.generic import ( CreateView, - ListView, DetailView, + ListView, TemplateView, UpdateView, - DeleteView, ) -from django.contrib.auth.mixins import PermissionRequiredMixin -from django.db.models import Sum from camps.mixins import CampViewMixin +from teams.models import Team from utils.email import add_outgoing_email from utils.mixins import RaisePermissionRequiredMixin -from teams.models import Team -from .models import * -from .mixins import * -from .forms import * + +from .forms import ( + ExpenseCreateForm, + ExpenseUpdateForm, + RevenueCreateForm, + RevenueUpdateForm, +) +from .mixins import ( + ChainViewMixin, + CredebtorViewMixin, + ExpensePermissionMixin, + ReimbursementPermissionMixin, + RevenuePermissionMixin, +) +from .models import Chain, Credebtor, Expense, Reimbursement, Revenue class EconomyDashboardView(LoginRequiredMixin, CampViewMixin, TemplateView): @@ -89,7 +100,8 @@ class EconomyDashboardView(LoginRequiredMixin, CampViewMixin, TemplateView): return context -########### Chain/Creditor related views ############### +############################################ +# Chain/Credebtor related views class ChainCreateView(CampViewMixin, RaisePermissionRequiredMixin, CreateView): @@ -174,7 +186,8 @@ class CredebtorListView( return context -########### Expense related views ############### +############################################ +# Expense related views class ExpenseListView(LoginRequiredMixin, CampViewMixin, ListView): @@ -322,7 +335,8 @@ class ExpenseInvoiceView(CampViewMixin, ExpensePermissionMixin, DetailView): return response -########### Reimbursement related views ############### +############################################ +# Reimbursement related views class ReimbursementListView(LoginRequiredMixin, CampViewMixin, ListView): @@ -339,7 +353,8 @@ class ReimbursementDetailView(CampViewMixin, ReimbursementPermissionMixin, Detai template_name = "reimbursement_detail.html" -########### Revenue related views ############### +############################################ +# Revenue related views class RevenueListView(LoginRequiredMixin, CampViewMixin, ListView): diff --git a/src/events/admin.py b/src/events/admin.py index 39044e4b..f352d655 100644 --- a/src/events/admin.py +++ b/src/events/admin.py @@ -1,5 +1,6 @@ from django.contrib import admin -from .models import Type, Routing + +from .models import Routing, Type @admin.register(Type) diff --git a/src/events/handler.py b/src/events/handler.py index 87e4adfa..cbe5ba2d 100644 --- a/src/events/handler.py +++ b/src/events/handler.py @@ -1,8 +1,7 @@ -from django.utils import timezone -from datetime import timedelta -from ircbot.utils import add_irc_message import logging +from ircbot.utils import add_irc_message + logger = logging.getLogger("bornhack.%s" % __name__) @@ -93,3 +92,4 @@ def team_email_notification( recipient_list = [resp.email for resp in team.responsible_members.all()] # TODO: actually send the email here + logger.debug(f"sending test email to {recipient_list}") diff --git a/src/events/migrations/0001_initial.py b/src/events/migrations/0001_initial.py index 16449291..7dcdcd79 100644 --- a/src/events/migrations/0001_initial.py +++ b/src/events/migrations/0001_initial.py @@ -2,8 +2,8 @@ # Generated by Django 1.10.5 on 2018-03-18 13:16 from __future__ import unicode_literals -from django.db import migrations, models import django.db.models.deletion +from django.db import migrations, models class Migration(migrations.Migration): diff --git a/src/events/models.py b/src/events/models.py index 79f9e85e..71cd17e6 100644 --- a/src/events/models.py +++ b/src/events/models.py @@ -1,6 +1,7 @@ from django.db import models -from utils.models import CreatedUpdatedModel + from teams.models import Team +from utils.models import CreatedUpdatedModel class Type(CreatedUpdatedModel): diff --git a/src/events/tests.py b/src/events/tests.py deleted file mode 100644 index 7ce503c2..00000000 --- a/src/events/tests.py +++ /dev/null @@ -1,3 +0,0 @@ -from django.test import TestCase - -# Create your tests here. diff --git a/src/events/views.py b/src/events/views.py deleted file mode 100644 index 91ea44a2..00000000 --- a/src/events/views.py +++ /dev/null @@ -1,3 +0,0 @@ -from django.shortcuts import render - -# Create your views here. diff --git a/src/feedback/migrations/0001_initial.py b/src/feedback/migrations/0001_initial.py index 85fc5d88..ccc715c0 100644 --- a/src/feedback/migrations/0001_initial.py +++ b/src/feedback/migrations/0001_initial.py @@ -1,9 +1,10 @@ # Generated by Django 2.1 on 2018-08-20 13:13 +import uuid + +import django.db.models.deletion from django.conf import settings from django.db import migrations, models -import django.db.models.deletion -import uuid class Migration(migrations.Migration): diff --git a/src/feedback/migrations/0002_feedback_camp.py b/src/feedback/migrations/0002_feedback_camp.py index 9c0fbe90..5dd4acf5 100644 --- a/src/feedback/migrations/0002_feedback_camp.py +++ b/src/feedback/migrations/0002_feedback_camp.py @@ -1,7 +1,7 @@ # Generated by Django 2.1 on 2018-08-20 13:51 -from django.db import migrations, models import django.db.models.deletion +from django.db import migrations, models class Migration(migrations.Migration): diff --git a/src/feedback/models.py b/src/feedback/models.py index d30cc631..262f5c45 100644 --- a/src/feedback/models.py +++ b/src/feedback/models.py @@ -1,6 +1,6 @@ from django.db import models -from utils.models import UUIDModel, CreatedUpdatedModel, CampRelatedModel +from utils.models import CampRelatedModel, UUIDModel class Feedback(CampRelatedModel, UUIDModel): diff --git a/src/feedback/tests.py b/src/feedback/tests.py deleted file mode 100644 index 7ce503c2..00000000 --- a/src/feedback/tests.py +++ /dev/null @@ -1,3 +0,0 @@ -from django.test import TestCase - -# Create your tests here. diff --git a/src/feedback/views.py b/src/feedback/views.py index d5559a64..c78769ee 100644 --- a/src/feedback/views.py +++ b/src/feedback/views.py @@ -6,6 +6,7 @@ from django.views.generic import CreateView from camps.mixins import CampViewMixin from tokens.models import Token + from .models import Feedback diff --git a/src/info/admin.py b/src/info/admin.py index b630843e..f2b80031 100644 --- a/src/info/admin.py +++ b/src/info/admin.py @@ -1,6 +1,7 @@ from django.contrib import admin from reversion.admin import VersionAdmin -from .models import InfoItem, InfoCategory + +from .models import InfoCategory, InfoItem @admin.register(InfoItem) diff --git a/src/info/migrations/0001_initial.py b/src/info/migrations/0001_initial.py index 599ea194..00889431 100644 --- a/src/info/migrations/0001_initial.py +++ b/src/info/migrations/0001_initial.py @@ -2,8 +2,8 @@ # Generated by Django 1.10.4 on 2016-12-24 22:11 -from django.db import migrations, models import django.db.models.deletion +from django.db import migrations, models class Migration(migrations.Migration): diff --git a/src/info/migrations/0004_infocategory_team.py b/src/info/migrations/0004_infocategory_team.py index 12660760..b365f8a3 100644 --- a/src/info/migrations/0004_infocategory_team.py +++ b/src/info/migrations/0004_infocategory_team.py @@ -1,7 +1,7 @@ # Generated by Django 2.0.4 on 2018-05-04 21:11 -from django.db import migrations, models import django.db.models.deletion +from django.db import migrations, models class Migration(migrations.Migration): diff --git a/src/info/migrations/0005_add_teams_to_categories.py b/src/info/migrations/0005_add_teams_to_categories.py index 60240be1..6d026ee3 100644 --- a/src/info/migrations/0005_add_teams_to_categories.py +++ b/src/info/migrations/0005_add_teams_to_categories.py @@ -1,7 +1,7 @@ # Generated by Django 2.0.4 on 2018-05-08 07:42 -from django.db import migrations from django.core.exceptions import ObjectDoesNotExist +from django.db import migrations def add_teams_to_categories(apps, schema_editor): diff --git a/src/info/migrations/0006_auto_20180520_1113.py b/src/info/migrations/0006_auto_20180520_1113.py index 66a3329c..58649f9c 100644 --- a/src/info/migrations/0006_auto_20180520_1113.py +++ b/src/info/migrations/0006_auto_20180520_1113.py @@ -1,7 +1,7 @@ # Generated by Django 2.0.4 on 2018-05-20 16:13 -from django.db import migrations, models import django.db.models.deletion +from django.db import migrations, models class Migration(migrations.Migration): diff --git a/src/info/migrations/0007_auto_20180520_1511.py b/src/info/migrations/0007_auto_20180520_1511.py index 6fcef49a..410addbd 100644 --- a/src/info/migrations/0007_auto_20180520_1511.py +++ b/src/info/migrations/0007_auto_20180520_1511.py @@ -1,7 +1,7 @@ # Generated by Django 2.0.4 on 2018-05-20 20:11 -from django.db import migrations, models import django.db.models.deletion +from django.db import migrations, models class Migration(migrations.Migration): diff --git a/src/info/models.py b/src/info/models.py index 031b4c47..e7c4cc29 100644 --- a/src/info/models.py +++ b/src/info/models.py @@ -1,8 +1,8 @@ -from django.db import models -from utils.models import CampRelatedModel -from django.core.exceptions import ValidationError - import reversion +from django.core.exceptions import ValidationError +from django.db import models + +from utils.models import CampRelatedModel class InfoCategory(CampRelatedModel): diff --git a/src/info/views.py b/src/info/views.py index 15b98587..35651573 100644 --- a/src/info/views.py +++ b/src/info/views.py @@ -1,7 +1,9 @@ from django.views.generic import ListView -from .models import * + from camps.mixins import CampViewMixin +from .models import InfoCategory + class CampInfoView(CampViewMixin, ListView): model = InfoCategory diff --git a/src/ircbot/admin.py b/src/ircbot/admin.py index ac9622bb..20b7fe97 100644 --- a/src/ircbot/admin.py +++ b/src/ircbot/admin.py @@ -1,4 +1,5 @@ from django.contrib import admin + from .models import OutgoingIrcMessage admin.site.register(OutgoingIrcMessage) diff --git a/src/ircbot/irc3module.py b/src/ircbot/irc3module.py index 5909734d..700b32a4 100644 --- a/src/ircbot/irc3module.py +++ b/src/ircbot/irc3module.py @@ -1,12 +1,13 @@ -import irc3, re -from ircbot.models import OutgoingIrcMessage -from teams.models import Team, TeamMember +import logging +import re + +import irc3 from django.conf import settings from django.utils import timezone -from events.models import Routing -from teams.utils import get_team_from_irc_channel -import logging +from ircbot.models import OutgoingIrcMessage +from teams.models import Team, TeamMember +from teams.utils import get_team_from_irc_channel logger = logging.getLogger("bornhack.%s" % __name__) @@ -24,7 +25,7 @@ class Plugin(object): self.bot = bot ############################################################################################### - ### builtin irc3 event methods + # builtin irc3 event methods def server_ready(self, **kwargs): """triggered after the server sent the MOTD (require core plugin)""" @@ -54,7 +55,7 @@ class Plugin(object): logger.debug("inside connection_made(), kwargs: %s" % kwargs) ############################################################################################### - ### decorated irc3 event methods + # decorated irc3 event methods @irc3.event(irc3.rfc.JOIN_PART_QUIT) def on_join_part_quit(self, **kwargs): @@ -104,7 +105,7 @@ class Plugin(object): logger.debug("inside on_kick(), kwargs: %s" % kwargs) ############################################################################################### - ### custom irc3 methods below here + # custom irc3 methods below here @irc3.extend def do_stuff(self): @@ -158,7 +159,7 @@ class Plugin(object): logger.warning("skipping message to %s" % msg.target) ############################################################################################### - ### irc channel methods + # irc channel methods @irc3.extend def check_irc_channels(self): @@ -377,7 +378,7 @@ class Plugin(object): self.bot.setup_public_channel(team.public_irc_channel_name) ############################################################################################### - ### services (ChanServ & NickServ) methods + # services (ChanServ & NickServ) methods @irc3.extend def handle_chanserv_privmsg(self, **kwargs): @@ -429,7 +430,6 @@ class Plugin(object): if match: # the irc channel is now registered channel = match.group(1) - botnick = match.group(2) logger.debug( "Channel %s was registered with ChanServ, looking up Team..." % channel ) diff --git a/src/ircbot/ircworker.py b/src/ircbot/ircworker.py index 38e05d43..db888029 100644 --- a/src/ircbot/ircworker.py +++ b/src/ircbot/ircworker.py @@ -1,7 +1,7 @@ -from django.conf import settings import logging + import irc3 -from events.models import Routing +from django.conf import settings logging.basicConfig(level=logging.INFO) logger = logging.getLogger("bornhack.%s" % __name__) @@ -33,5 +33,5 @@ def do_work(): try: irc3.IrcBot(**config).run(forever=True) except Exception as E: - logger.exception("Got exception inside do_work for %s" % self.workermodule) + logger.exception("Got exception inside irc3.IrcBot.run()") raise E diff --git a/src/ircbot/migrations/0002_outgoingircmessage_timeout.py b/src/ircbot/migrations/0002_outgoingircmessage_timeout.py index 9ee22912..cf2791fa 100644 --- a/src/ircbot/migrations/0002_outgoingircmessage_timeout.py +++ b/src/ircbot/migrations/0002_outgoingircmessage_timeout.py @@ -3,6 +3,7 @@ from __future__ import unicode_literals import datetime + from django.db import migrations, models from django.utils.timezone import utc diff --git a/src/ircbot/models.py b/src/ircbot/models.py index c52e78ff..8f643d04 100644 --- a/src/ircbot/models.py +++ b/src/ircbot/models.py @@ -1,8 +1,9 @@ from django.core.exceptions import ValidationError -from utils.models import CreatedUpdatedModel from django.db import models from django.utils import timezone +from utils.models import CreatedUpdatedModel + class OutgoingIrcMessage(CreatedUpdatedModel): target = models.CharField(max_length=100) diff --git a/src/ircbot/utils.py b/src/ircbot/utils.py index a5388f00..e1969120 100644 --- a/src/ircbot/utils.py +++ b/src/ircbot/utils.py @@ -1,7 +1,7 @@ -from django.conf import settings -from django.utils import timezone -from datetime import timedelta import logging +from datetime import timedelta + +from django.utils import timezone logger = logging.getLogger("bornhack.%s" % __name__) diff --git a/src/news/models.py b/src/news/models.py index 46d17837..b05fe6ba 100644 --- a/src/news/models.py +++ b/src/news/models.py @@ -1,6 +1,6 @@ from django.db import models -from django.utils.text import slugify from django.urls import reverse +from django.utils.text import slugify from utils.models import CreatedUpdatedModel diff --git a/src/news/urls.py b/src/news/urls.py index a9786537..71fdae56 100644 --- a/src/news/urls.py +++ b/src/news/urls.py @@ -1,4 +1,5 @@ from django.urls import path + from . import views app_name = "news" diff --git a/src/news/views.py b/src/news/views.py index a2a48385..5d82c001 100644 --- a/src/news/views.py +++ b/src/news/views.py @@ -1,6 +1,6 @@ -from django.views.generic import ListView, DetailView -from django.utils import timezone from django.contrib.syndication.views import Feed +from django.utils import timezone +from django.views.generic import DetailView, ListView from .models import NewsItem diff --git a/src/people/views.py b/src/people/views.py index c79eb27f..00330ac9 100644 --- a/src/people/views.py +++ b/src/people/views.py @@ -1,4 +1,5 @@ from django.views.generic import ListView + from camps.models import Camp diff --git a/src/profiles/admin.py b/src/profiles/admin.py index 7fe243a1..c7a6d474 100644 --- a/src/profiles/admin.py +++ b/src/profiles/admin.py @@ -1,4 +1,5 @@ from django.contrib import admin + from .models import Profile diff --git a/src/profiles/apps.py b/src/profiles/apps.py index dcd296dd..0688da1e 100644 --- a/src/profiles/apps.py +++ b/src/profiles/apps.py @@ -1,8 +1,10 @@ -from django.apps import AppConfig -from django.db.models.signals import pre_save, post_save -from .signal_handlers import create_profile, profile_pre_save import logging +from django.apps import AppConfig +from django.db.models.signals import post_save, pre_save + +from .signal_handlers import create_profile, profile_pre_save + logger = logging.getLogger("bornhack.%s" % __name__) diff --git a/src/profiles/migrations/0001_initial.py b/src/profiles/migrations/0001_initial.py index 0f1b8e02..bb60ad91 100644 --- a/src/profiles/migrations/0001_initial.py +++ b/src/profiles/migrations/0001_initial.py @@ -1,10 +1,11 @@ # -*- coding: utf-8 -*- -from django.db import models, migrations -from django.conf import settings import uuid +from django.conf import settings +from django.db import migrations, models + class Migration(migrations.Migration): diff --git a/src/profiles/models.py b/src/profiles/models.py index 597ad371..b47c5b6a 100644 --- a/src/profiles/models.py +++ b/src/profiles/models.py @@ -2,7 +2,7 @@ from django.contrib.auth.models import User from django.db import models from django.utils.translation import ugettext_lazy as _ -from utils.models import UUIDModel, CreatedUpdatedModel +from utils.models import CreatedUpdatedModel, UUIDModel class Profile(CreatedUpdatedModel, UUIDModel): diff --git a/src/profiles/signal_handlers.py b/src/profiles/signal_handlers.py index c25b9901..18616e4a 100644 --- a/src/profiles/signal_handlers.py +++ b/src/profiles/signal_handlers.py @@ -1,7 +1,7 @@ -from django.db.models.signals import post_save, pre_save -from events.handler import handle_team_event import logging +from events.handler import handle_team_event + logger = logging.getLogger("bornhack.%s" % __name__) diff --git a/src/profiles/views.py b/src/profiles/views.py index 6b3ef9a9..6477e38f 100644 --- a/src/profiles/views.py +++ b/src/profiles/views.py @@ -1,7 +1,7 @@ -from django.contrib.auth.mixins import LoginRequiredMixin -from django.views.generic import DetailView, UpdateView -from django.urls import reverse_lazy from django.contrib import messages +from django.contrib.auth.mixins import LoginRequiredMixin +from django.urls import reverse_lazy +from django.views.generic import DetailView, UpdateView from . import models diff --git a/src/program/admin.py b/src/program/admin.py index 285bb8f3..fbedcded 100644 --- a/src/program/admin.py +++ b/src/program/admin.py @@ -1,19 +1,18 @@ from django.contrib import admin, messages from django.core.exceptions import ValidationError - from .models import ( Event, - Speaker, - EventType, EventInstance, EventLocation, - EventTrack, - SpeakerProposal, EventProposal, + EventTrack, + EventType, Favorite, - UrlType, + Speaker, + SpeakerProposal, Url, + UrlType, ) diff --git a/src/program/apps.py b/src/program/apps.py index 63b93945..7890bd8d 100644 --- a/src/program/apps.py +++ b/src/program/apps.py @@ -6,7 +6,7 @@ class ProgramConfig(AppConfig): name = "program" def ready(self): - from .models import Speaker, SpeakerProposal, EventProposal + from .models import Speaker from .signal_handlers import ( check_speaker_event_camp_consistency, check_speaker_camp_change, diff --git a/src/program/consumers.py b/src/program/consumers.py index bfcf6b7f..e41648d1 100644 --- a/src/program/consumers.py +++ b/src/program/consumers.py @@ -1,13 +1,14 @@ from channels.generic.websocket import JsonWebsocketConsumer from camps.models import Camp + from .models import ( Event, EventInstance, - Favorite, EventLocation, - EventType, EventTrack, + EventType, + Favorite, Speaker, ) diff --git a/src/program/email.py b/src/program/email.py index 573cc88b..4e0b3a65 100644 --- a/src/program/email.py +++ b/src/program/email.py @@ -1,8 +1,9 @@ +import logging + from django.core.exceptions import ObjectDoesNotExist -from utils.email import add_outgoing_email from teams.models import Team -import logging +from utils.email import add_outgoing_email logger = logging.getLogger("bornhack.%s" % __name__) diff --git a/src/program/forms.py b/src/program/forms.py index 614c2669..c0ac4f1d 100644 --- a/src/program/forms.py +++ b/src/program/forms.py @@ -3,7 +3,7 @@ import logging from django import forms from django.core.exceptions import ImproperlyConfigured -from .models import SpeakerProposal, EventProposal, EventTrack, Url, UrlType +from .models import EventProposal, EventTrack, SpeakerProposal, Url, UrlType logger = logging.getLogger("bornhack.%s" % __name__) diff --git a/src/program/management/commands/notification_worker.py b/src/program/management/commands/notification_worker.py index e90ab5c6..b5147a66 100644 --- a/src/program/management/commands/notification_worker.py +++ b/src/program/management/commands/notification_worker.py @@ -1,14 +1,14 @@ -from django.core.management.base import BaseCommand -from django.conf import settings -from django.utils import timezone -from time import sleep -import irc3, sys, asyncio -from ircbot.models import OutgoingIrcMessage -from camps.utils import get_current_camp -from django.utils import timezone -from program.models import EventInstance -from datetime import timedelta import logging +from datetime import timedelta +from time import sleep + +from django.conf import settings +from django.core.management.base import BaseCommand +from django.utils import timezone + +from camps.utils import get_current_camp +from ircbot.models import OutgoingIrcMessage +from program.models import EventInstance logger = logging.getLogger("bornhack.%s" % __name__) diff --git a/src/program/migrations/0001_initial.py b/src/program/migrations/0001_initial.py index 3fee01c5..6f402138 100644 --- a/src/program/migrations/0001_initial.py +++ b/src/program/migrations/0001_initial.py @@ -2,8 +2,8 @@ # Generated by Django 1.9.6 on 2016-07-13 19:38 -from django.db import migrations, models import django.db.models.deletion +from django.db import migrations, models class Migration(migrations.Migration): diff --git a/src/program/migrations/0010_auto_20161212_1809.py b/src/program/migrations/0010_auto_20161212_1809.py index 1019ba9d..38831193 100644 --- a/src/program/migrations/0010_auto_20161212_1809.py +++ b/src/program/migrations/0010_auto_20161212_1809.py @@ -2,8 +2,8 @@ # Generated by Django 1.10.4 on 2016-12-12 18:09 -from django.db import migrations, models import django.db.models.deletion +from django.db import migrations, models class Migration(migrations.Migration): diff --git a/src/program/migrations/0013_auto_20170121_1312.py b/src/program/migrations/0013_auto_20170121_1312.py index dd8daabb..39e01e90 100644 --- a/src/program/migrations/0013_auto_20170121_1312.py +++ b/src/program/migrations/0013_auto_20170121_1312.py @@ -2,8 +2,8 @@ # Generated by Django 1.10.5 on 2017-01-21 12:12 -from django.db import migrations, models import django.db.models.deletion +from django.db import migrations, models class Migration(migrations.Migration): diff --git a/src/program/migrations/0014_speaker_camp.py b/src/program/migrations/0014_speaker_camp.py index 6f41290e..c681fdc3 100644 --- a/src/program/migrations/0014_speaker_camp.py +++ b/src/program/migrations/0014_speaker_camp.py @@ -2,8 +2,8 @@ # Generated by Django 1.10.5 on 2017-01-22 13:39 -from django.db import migrations, models import django.db.models.deletion +from django.db import migrations, models class Migration(migrations.Migration): diff --git a/src/program/migrations/0019_auto_20170205_1940.py b/src/program/migrations/0019_auto_20170205_1940.py index 5743b48b..ff5c42cb 100644 --- a/src/program/migrations/0019_auto_20170205_1940.py +++ b/src/program/migrations/0019_auto_20170205_1940.py @@ -2,8 +2,8 @@ # Generated by Django 1.10.5 on 2017-02-05 18:40 from __future__ import unicode_literals -from django.db import migrations, models import django.db.models.deletion +from django.db import migrations, models class Migration(migrations.Migration): diff --git a/src/program/migrations/0020_auto_20170205_1940.py b/src/program/migrations/0020_auto_20170205_1940.py index ec96fe07..6dae74d0 100644 --- a/src/program/migrations/0020_auto_20170205_1940.py +++ b/src/program/migrations/0020_auto_20170205_1940.py @@ -2,8 +2,8 @@ # Generated by Django 1.10.5 on 2017-02-05 18:40 from __future__ import unicode_literals -from django.db import migrations, models import django.db.models.deletion +from django.db import migrations, models class Migration(migrations.Migration): diff --git a/src/program/migrations/0023_auto_20170218_1243.py b/src/program/migrations/0023_auto_20170218_1243.py index 8d3d6f02..c64f8372 100644 --- a/src/program/migrations/0023_auto_20170218_1243.py +++ b/src/program/migrations/0023_auto_20170218_1243.py @@ -3,6 +3,7 @@ from __future__ import unicode_literals from django.db import migrations, models + import program.models diff --git a/src/program/migrations/0026_speaker_user.py b/src/program/migrations/0026_speaker_user.py index ac6c1466..7cd95345 100644 --- a/src/program/migrations/0026_speaker_user.py +++ b/src/program/migrations/0026_speaker_user.py @@ -2,9 +2,9 @@ # Generated by Django 1.10.5 on 2017-03-06 19:20 from __future__ import unicode_literals +import django.db.models.deletion from django.conf import settings from django.db import migrations, models -import django.db.models.deletion class Migration(migrations.Migration): diff --git a/src/program/migrations/0030_auto_20170312_1230.py b/src/program/migrations/0030_auto_20170312_1230.py index 863f6cb6..cb5d75ba 100644 --- a/src/program/migrations/0030_auto_20170312_1230.py +++ b/src/program/migrations/0030_auto_20170312_1230.py @@ -2,11 +2,13 @@ # Generated by Django 1.10.5 on 2017-03-12 11:30 from __future__ import unicode_literals +import uuid + +import django.db.models.deletion from django.conf import settings from django.db import migrations, models -import django.db.models.deletion + import program.models -import uuid class Migration(migrations.Migration): diff --git a/src/program/migrations/0033_auto_20170312_1857.py b/src/program/migrations/0033_auto_20170312_1857.py index 93f722bb..a1a524cf 100644 --- a/src/program/migrations/0033_auto_20170312_1857.py +++ b/src/program/migrations/0033_auto_20170312_1857.py @@ -2,11 +2,13 @@ # Generated by Django 1.10.5 on 2017-03-12 17:57 from __future__ import unicode_literals +import uuid + +import django.db.models.deletion from django.conf import settings from django.db import migrations, models -import django.db.models.deletion + import program.models -import uuid class Migration(migrations.Migration): diff --git a/src/program/migrations/0034_auto_20170314_2012.py b/src/program/migrations/0034_auto_20170314_2012.py index 8a674835..a9316514 100644 --- a/src/program/migrations/0034_auto_20170314_2012.py +++ b/src/program/migrations/0034_auto_20170314_2012.py @@ -3,6 +3,7 @@ from __future__ import unicode_literals from django.db import migrations, models + import program.models diff --git a/src/program/migrations/0036_auto_20170316_0004.py b/src/program/migrations/0036_auto_20170316_0004.py index b8931394..fcb4e303 100644 --- a/src/program/migrations/0036_auto_20170316_0004.py +++ b/src/program/migrations/0036_auto_20170316_0004.py @@ -3,6 +3,7 @@ from __future__ import unicode_literals from django.db import migrations, models + import program.models diff --git a/src/program/migrations/0038_favorite.py b/src/program/migrations/0038_favorite.py index f3f5e2bf..678be7bd 100644 --- a/src/program/migrations/0038_favorite.py +++ b/src/program/migrations/0038_favorite.py @@ -2,9 +2,9 @@ # Generated by Django 1.11 on 2017-04-15 23:21 from __future__ import unicode_literals +import django.db.models.deletion from django.conf import settings from django.db import migrations, models -import django.db.models.deletion class Migration(migrations.Migration): diff --git a/src/program/migrations/0045_event_proposal.py b/src/program/migrations/0045_event_proposal.py index 54053167..64a42120 100644 --- a/src/program/migrations/0045_event_proposal.py +++ b/src/program/migrations/0045_event_proposal.py @@ -2,8 +2,8 @@ # Generated by Django 1.10.5 on 2017-08-22 08:30 from __future__ import unicode_literals -from django.db import migrations, models import django.db.models.deletion +from django.db import migrations, models class Migration(migrations.Migration): diff --git a/src/program/migrations/0046_auto_20180318_0906.py b/src/program/migrations/0046_auto_20180318_0906.py index 486612cf..62af0417 100644 --- a/src/program/migrations/0046_auto_20180318_0906.py +++ b/src/program/migrations/0046_auto_20180318_0906.py @@ -2,9 +2,9 @@ # Generated by Django 1.10.5 on 2018-03-18 08:06 from __future__ import unicode_literals +import django.db.models.deletion from django.conf import settings from django.db import migrations, models -import django.db.models.deletion class Migration(migrations.Migration): diff --git a/src/program/migrations/0047_auto_20180415_1159.py b/src/program/migrations/0047_auto_20180415_1159.py index d847e274..ed5449c2 100644 --- a/src/program/migrations/0047_auto_20180415_1159.py +++ b/src/program/migrations/0047_auto_20180415_1159.py @@ -1,8 +1,8 @@ # Generated by Django 2.0.4 on 2018-04-15 16:59 +import django.db.models.deletion from django.conf import settings from django.db import migrations, models -import django.db.models.deletion class Migration(migrations.Migration): diff --git a/src/program/migrations/0048_auto_20180512_1625.py b/src/program/migrations/0048_auto_20180512_1625.py index f4ac22ad..8387e107 100644 --- a/src/program/migrations/0048_auto_20180512_1625.py +++ b/src/program/migrations/0048_auto_20180512_1625.py @@ -1,8 +1,8 @@ # Generated by Django 2.0.4 on 2018-05-12 14:25 +import django.db.models.deletion from django.conf import settings from django.db import migrations, models -import django.db.models.deletion class Migration(migrations.Migration): diff --git a/src/program/migrations/0051_auto_20180512_1801.py b/src/program/migrations/0051_auto_20180512_1801.py index 70908f20..3fb74102 100644 --- a/src/program/migrations/0051_auto_20180512_1801.py +++ b/src/program/migrations/0051_auto_20180512_1801.py @@ -1,7 +1,7 @@ # Generated by Django 2.0.4 on 2018-05-12 16:01 -from django.db import migrations, models import django.db.models.deletion +from django.db import migrations, models class Migration(migrations.Migration): diff --git a/src/program/migrations/0055_auto_20180521_2354.py b/src/program/migrations/0055_auto_20180521_2354.py index 5b3178dc..fd1cb103 100644 --- a/src/program/migrations/0055_auto_20180521_2354.py +++ b/src/program/migrations/0055_auto_20180521_2354.py @@ -1,7 +1,7 @@ # Generated by Django 2.0.4 on 2018-05-21 21:54 -from django.db import migrations, models import django.db.models.deletion +from django.db import migrations, models class Migration(migrations.Migration): diff --git a/src/program/migrations/0059_auto_20180523_2241.py b/src/program/migrations/0059_auto_20180523_2241.py index 93bbace5..a974ecb8 100644 --- a/src/program/migrations/0059_auto_20180523_2241.py +++ b/src/program/migrations/0059_auto_20180523_2241.py @@ -1,8 +1,9 @@ # Generated by Django 2.0.4 on 2018-05-23 20:41 -from django.db import migrations, models import uuid +from django.db import migrations, models + class Migration(migrations.Migration): diff --git a/src/program/migrations/0060_auto_20180603_1455.py b/src/program/migrations/0060_auto_20180603_1455.py index eee2860a..14b34471 100644 --- a/src/program/migrations/0060_auto_20180603_1455.py +++ b/src/program/migrations/0060_auto_20180603_1455.py @@ -1,8 +1,8 @@ # Generated by Django 2.0.4 on 2018-06-03 12:55 +import django.db.models.deletion from django.conf import settings from django.db import migrations, models -import django.db.models.deletion class Migration(migrations.Migration): diff --git a/src/program/migrations/0061_auto_20180603_1525.py b/src/program/migrations/0061_auto_20180603_1525.py index 9ad33ddf..d4f475b6 100644 --- a/src/program/migrations/0061_auto_20180603_1525.py +++ b/src/program/migrations/0061_auto_20180603_1525.py @@ -1,7 +1,7 @@ # Generated by Django 2.0.4 on 2018-06-03 13:25 -from django.db import migrations, models import django.db.models.deletion +from django.db import migrations, models class Migration(migrations.Migration): diff --git a/src/program/mixins.py b/src/program/mixins.py index 1de73fd3..8f86978b 100644 --- a/src/program/mixins.py +++ b/src/program/mixins.py @@ -1,9 +1,10 @@ -from django.views.generic.detail import SingleObjectMixin -from django.shortcuts import redirect, get_object_or_404 -from django.urls import reverse -from . import models from django.contrib import messages -from django.http import Http404, HttpResponse +from django.http import Http404 +from django.shortcuts import get_object_or_404, redirect +from django.urls import reverse +from django.views.generic.detail import SingleObjectMixin + +from . import models class EnsureCFPOpenMixin(object): diff --git a/src/program/models.py b/src/program/models.py index b3fddbaa..6238a790 100644 --- a/src/program/models.py +++ b/src/program/models.py @@ -1,25 +1,19 @@ -import uuid -import os -import icalendar import logging +import uuid from datetime import timedelta -from django.contrib.postgres.fields import DateTimeRangeField, ArrayField -from django.contrib import messages -from django.db import models -from django.core.exceptions import ObjectDoesNotExist, ValidationError -from django.utils.text import slugify -from django.conf import settings -from django.urls import reverse_lazy -from django.core.files.storage import FileSystemStorage -from django.urls import reverse +import icalendar from django.apps import apps -from django.core.files.base import ContentFile -from django.contrib.contenttypes.fields import GenericForeignKey -from django.contrib.contenttypes.models import ContentType - -from utils.models import CreatedUpdatedModel, CampRelatedModel +from django.conf import settings +from django.contrib import messages +from django.contrib.postgres.fields import DateTimeRangeField +from django.core.exceptions import ObjectDoesNotExist, ValidationError +from django.core.files.storage import FileSystemStorage +from django.db import models +from django.urls import reverse_lazy +from django.utils.text import slugify +from utils.models import CampRelatedModel, CreatedUpdatedModel logger = logging.getLogger("bornhack.%s" % __name__) @@ -170,7 +164,7 @@ class UserSubmittedModel(CampRelatedModel): PROPOSAL_APPROVED = "approved" PROPOSAL_REJECTED = "rejected" - PROPOSAL_STATUSES = [PROPOSAL_PENDING, PROPOSAL_APPROVED, PROPOSAL_REJECTED] + ROPOSAL_STATUSES = [PROPOSAL_PENDING, PROPOSAL_APPROVED, PROPOSAL_REJECTED] PROPOSAL_STATUS_CHOICES = [ (PROPOSAL_PENDING, "Pending approval"), diff --git a/src/program/multiform.py b/src/program/multiform.py index a303d1ec..4c8d0459 100644 --- a/src/program/multiform.py +++ b/src/program/multiform.py @@ -26,13 +26,13 @@ # OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -from itertools import chain +from collections import OrderedDict from functools import reduce +from itertools import chain from operator import add -from collections import OrderedDict -from django.forms.utils import ErrorDict, ErrorList -from django.core.exceptions import ValidationError, NON_FIELD_ERRORS +from django.core.exceptions import NON_FIELD_ERRORS, ValidationError +from django.forms.utils import ErrorList from django.utils.safestring import mark_safe diff --git a/src/program/schema.py b/src/program/schema.py index 89d03634..cb141eee 100644 --- a/src/program/schema.py +++ b/src/program/schema.py @@ -1,15 +1,14 @@ import graphene from graphene import relay - from graphene_django import DjangoObjectType from graphene_django.filter import DjangoFilterConnectionField from .models import ( Event, - EventType, + EventInstance, EventLocation, EventTrack, - EventInstance, + EventType, Speaker, Url, UrlType, diff --git a/src/program/signal_handlers.py b/src/program/signal_handlers.py index f6f3dff8..1bf37b0a 100644 --- a/src/program/signal_handlers.py +++ b/src/program/signal_handlers.py @@ -1,13 +1,6 @@ import logging -from datetime import timedelta - from django.core.exceptions import ValidationError -from django.utils import timezone -from django.conf import settings - -from .email import add_new_speakerproposal_email, add_new_eventproposal_email -from .models import EventProposal, SpeakerProposal logger = logging.getLogger("bornhack.%s" % __name__) diff --git a/src/program/templates/noscript_schedule_view.html b/src/program/templates/noscript_schedule_view.html index 01dbfff8..8ffcd497 100644 --- a/src/program/templates/noscript_schedule_view.html +++ b/src/program/templates/noscript_schedule_view.html @@ -1,7 +1,7 @@ {% extends 'program_base.html' %} {% load commonmark %} -{% load staticfiles %} +{% load static %} {% block program_content %} diff --git a/src/program/templates/schedule_day.html b/src/program/templates/schedule_day.html index 7233464d..692edca2 100644 --- a/src/program/templates/schedule_day.html +++ b/src/program/templates/schedule_day.html @@ -1,5 +1,5 @@ {% extends 'schedule_base.html' %} -{% load staticfiles %} +{% load static %} {% block schedule_content %} diff --git a/src/program/templates/schedule_overview.html b/src/program/templates/schedule_overview.html index 3391ab54..53772ec6 100644 --- a/src/program/templates/schedule_overview.html +++ b/src/program/templates/schedule_overview.html @@ -1,7 +1,7 @@ {% extends 'program_base.html' %} {% load commonmark %} -{% load staticfiles %} +{% load static %} {% block extra_head %}