Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
17 changes: 0 additions & 17 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,6 @@
+ [For code in general](#for-code-in-general)
- [Quotation marks inside strings](#quotation-marks-inside-strings)
- [String concatenation](#string-concatenation)
- [Imports](#imports)
+ [For each module (file)](#for-each-module-file)
- [Folder/directory location](#folderdirectory-location)
- [Filename](#filename)
Expand Down Expand Up @@ -158,22 +157,6 @@ if an f-string is hard to read, extract inserted code to variables, and insert t
For translation strings (using `gettext` or `gettext_lazy`), use the standard `format()` method for concatenation.
For example:<br/>`_("{chant} Batman!").format(chant="NaN" * 15)` (where `gettext_lazy` is imported as `_`).

#### Imports

Group imports in three "paragraphs" (separated by an empty line) in the following order:
1. Modules from Python's standard library
2. Third-party modules
3. Modules part of this project

Within each import group/paragraph, sort plain imports first, followed by `from` imports.
Additionally, sort imports alphabetically, including names listed in `from` imports.
<br/>*Tip: All of this can easily be done using PyCharm's
[Optimize Imports feature](https://www.jetbrains.com/pycharm/guide/tips/optimize-imports/) (<kbd>Ctrl+Alt+O</kbd>/<kbd>⌃⌥O</kbd> by default) -
possibly requiring some tweaking of the settings.*

All imports in a file that are from the same app as the mentioned file, should be relative
(e.g. `from .models import User` or `from .. import views`).


### For each module (file)

Expand Down
10 changes: 8 additions & 2 deletions pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -68,13 +68,19 @@ show-fixes = true
format.docstring-code-format = true

lint.select = [
"E", # flake8/pycodestyle (Error)
"F", # flake8/Pyflakes
"E", # flake8/pycodestyle (Error)
"F", # flake8/Pyflakes
"I", # isort
"TID252", # https://docs.astral.sh/ruff/rules/relative-imports/#relative-imports-tid252
]

# Disable line length check in migrations
lint.per-file-ignores."**/migrations/**" = [ "E501" ]

lint.flake8-tidy-imports.ban-relative-imports = "all"

lint.isort.combine-as-imports = true

# Ignore E501 for comments starting with TODO, FIXME, etc.
lint.pycodestyle.ignore-overlong-task-comments = true

Expand Down
2 changes: 1 addition & 1 deletion src/announcements/admin.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,12 +2,12 @@
from django.template.defaultfilters import urlize
from django.utils.translation import gettext_lazy as _

from announcements.models import Announcement
from util.admin_utils import (
DefaultAdminWidgetsMixin,
list_filter_factory,
search_escaped_and_unescaped,
)
from .models import Announcement


class AnnouncementAdmin(DefaultAdminWidgetsMixin, admin.ModelAdmin):
Expand Down
2 changes: 1 addition & 1 deletion src/announcements/forms.py
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
from django.forms import ModelForm

from announcements.models import Announcement
from web.widgets import SemanticChoiceInput, SemanticDateTimeInput
from .models import Announcement


class AnnouncementForm(ModelForm):
Expand Down
2 changes: 2 additions & 0 deletions src/announcements/migrations/0001_initial.py
Original file line number Diff line number Diff line change
@@ -1,7 +1,9 @@
# Generated by Django 3.0.4 on 2020-03-14 12:57

import datetime

from django.db import migrations, models

import web.multilingual.modelfields


Expand Down
1 change: 1 addition & 0 deletions src/announcements/migrations/0002_help_text_and_naming.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
# Generated by Django 3.0.4 on 2020-03-14 18:38

import datetime

from django.db import migrations, models


Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
# Generated by Django 3.0.11 on 2020-11-10 16:21

from django.db import migrations, models
import django.utils.timezone
from django.db import migrations, models


class Migration(migrations.Migration):
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
# Generated by Django 3.1.2 on 2020-10-30 00:10

from django.db import migrations

import web.modelfields
import web.multilingual.modelfields

Expand Down
2 changes: 1 addition & 1 deletion src/announcements/templatetags/announcement_tags.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
from django import template

from ..models import Announcement
from announcements.models import Announcement

register = template.Library()

Expand Down
2 changes: 1 addition & 1 deletion src/announcements/tests/test_urls.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,12 +2,12 @@
from django.utils import timezone
from django_hosts import reverse

from announcements.models import Announcement
from util.test_utils import (
Get,
assert_requesting_paths_succeeds,
generate_all_admin_urls_for_model_and_objs,
)
from ..models import Announcement


class UrlTests(TestCase):
Expand Down
3 changes: 1 addition & 2 deletions src/announcements/urls.py
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
from django.urls import include, path

from . import views

from announcements import views

urlpatterns = []

Expand Down
4 changes: 2 additions & 2 deletions src/announcements/views.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,9 +5,9 @@
from django.utils.translation import gettext_lazy as _
from django.views.generic import CreateView, DeleteView, ListView, UpdateView

from announcements.forms import AnnouncementForm
from announcements.models import Announcement
from util.view_utils import CustomFieldsetFormMixin, PreventGetRequestsMixin
from .forms import AnnouncementForm
from .models import Announcement


class AdminAnnouncementListView(PermissionRequiredMixin, ListView):
Expand Down
4 changes: 2 additions & 2 deletions src/card/formfields.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,8 @@
from django.utils.text import capfirst
from django.utils.translation import gettext_lazy as _

from .validators import card_number_input_validator
from .widgets import CardNumberInput
from card.validators import card_number_input_validator
from card.widgets import CardNumberInput


class CardNumberField(forms.CharField):
Expand Down
4 changes: 2 additions & 2 deletions src/card/modelfields.py
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
from django.db import models
from django.utils.translation import gettext_lazy as _

from .validators import card_number_validator
from card.validators import card_number_validator


class CardNumberField(models.CharField):
Expand All @@ -25,7 +25,7 @@ def __init__(self, **kwargs):
)

def formfield(self, **kwargs):
from . import formfields # Avoids circular importing
from card import formfields # Avoids circular importing

return super().formfield(
**{
Expand Down
2 changes: 1 addition & 1 deletion src/card/tests/test_modelfields.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
from unittest import TestCase

from ..modelfields import CardNumber, CardNumberField
from card.modelfields import CardNumber, CardNumberField


class CardNumberModelFieldTest(TestCase):
Expand Down
2 changes: 1 addition & 1 deletion src/card/utils.py
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
from django.core.exceptions import ValidationError

from card.formfields import CardNumberField
from make_queue.models.course import Printer3DCourse
from users.models import User
from .formfields import CardNumberField


def is_valid(card_number):
Expand Down
1 change: 0 additions & 1 deletion src/card/validators.py
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
from django.core.validators import RegexValidator
from django.utils.translation import gettext_lazy as _


# Used for validating user input through the form field
card_number_input_validator = RegexValidator(
r"^\d{7,10}$", _("Card number must be between seven and ten digits long.")
Expand Down
2 changes: 1 addition & 1 deletion src/card/views.py
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
from django.views import View
from django.views.decorators.csrf import csrf_exempt

from . import utils
from card import utils


@method_decorator(csrf_exempt, name="dispatch")
Expand Down
2 changes: 1 addition & 1 deletion src/card/widgets.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
from django import forms

from .modelfields import CardNumber
from card.modelfields import CardNumber


class CardNumberInput(forms.TextInput):
Expand Down
2 changes: 1 addition & 1 deletion src/checkin/admin.py
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
from django.contrib import admin

from checkin.models import Profile, Skill, SuggestSkill, UserSkill
from util.admin_utils import DefaultAdminWidgetsMixin
from .models import Profile, Skill, SuggestSkill, UserSkill


class ProfileAdmin(DefaultAdminWidgetsMixin, admin.ModelAdmin):
Expand Down
2 changes: 1 addition & 1 deletion src/checkin/api/views.py
Original file line number Diff line number Diff line change
Expand Up @@ -7,8 +7,8 @@
from django.views.generic import DeleteView, TemplateView

from card import utils as card_utils
from checkin.models import RegisterProfile, Skill, SuggestSkill
from util.view_utils import PreventGetRequestsMixin, UTF8JsonResponse
from ..models import RegisterProfile, Skill, SuggestSkill


class AdminAPISuggestSkillVoteView(
Expand Down
2 changes: 1 addition & 1 deletion src/checkin/migrations/0001_initial.py
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
# Generated by Django 2.0.2 on 2018-05-02 14:37

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):
Expand Down
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
# Generated by Django 2.2.5 on 2019-12-31 00:52

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):
Expand Down
Original file line number Diff line number Diff line change
@@ -1,9 +1,11 @@
# Generated by Django 4.0.1 on 2022-01-20 19:12

from django.conf import settings
from django.db import migrations, models
import functools
from pathlib import Path

from django.conf import settings
from django.db import migrations, models

import util.modelfields
import util.storage

Expand Down
2 changes: 1 addition & 1 deletion src/checkin/migrations/0012_profile_user_non_nullable.py
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
# Generated by Django 2.2.5 on 2019-12-31 00:52

import django.db.models.deletion
from django.conf import settings
from django.db import migrations, models
import django.db.models.deletion


def delete_profiles_without_user(apps, schema_editor):
Expand Down
2 changes: 1 addition & 1 deletion src/checkin/tests/test_urls.py
Original file line number Diff line number Diff line change
@@ -1,13 +1,13 @@
from django.test import TestCase
from django_hosts import reverse

from checkin.models import Profile, Skill, SuggestSkill, UserSkill
from users.models import User
from util.test_utils import (
Get,
assert_requesting_paths_succeeds,
generate_all_admin_urls_for_model_and_objs,
)
from ..models import Profile, Skill, SuggestSkill, UserSkill


class UrlTests(TestCase):
Expand Down
3 changes: 1 addition & 2 deletions src/checkin/urls.py
Original file line number Diff line number Diff line change
@@ -1,8 +1,7 @@
from django.contrib.auth.decorators import login_required
from django.urls import path

from . import views

from checkin import views

urlpatterns = [
# This path is currently not in use
Expand Down
4 changes: 2 additions & 2 deletions src/checkin/views.py
Original file line number Diff line number Diff line change
Expand Up @@ -13,9 +13,9 @@
from django.views.generic import TemplateView

from card.views import RFIDView
from util.view_utils import PreventGetRequestsMixin
from .models import Profile, RegisterProfile, Skill, SuggestSkill, UserSkill
from checkin.models import Profile, RegisterProfile, Skill, SuggestSkill, UserSkill
from make_queue.models.course import CoursePermission
from util.view_utils import PreventGetRequestsMixin


class AdminCheckInView(RFIDView):
Expand Down
2 changes: 1 addition & 1 deletion src/contentbox/admin.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,9 @@
from django.utils.translation import gettext_lazy as _
from simple_history.admin import SimpleHistoryAdmin

from contentbox.models import ContentBox
from util import html_utils
from util.admin_utils import DefaultAdminWidgetsMixin, search_escaped_and_unescaped
from .models import ContentBox


class ContentBoxAdmin(DefaultAdminWidgetsMixin, SimpleHistoryAdmin):
Expand Down
2 changes: 1 addition & 1 deletion src/contentbox/forms.py
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
from django import forms
from django.conf import settings

from contentbox.models import ContentBox
from web.multilingual.widgets import (
MultiLingualRichTextUploading,
MultiLingualTextInput,
)
from .models import ContentBox


class ContentBoxForm(forms.ModelForm):
Expand Down
2 changes: 2 additions & 0 deletions src/contentbox/migrations/0005_auto_20181209_1836.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
# Generated by Django 2.1.2 on 2018-12-09 17:36
import json

from django.db import migrations

import web.multilingual.modelfields


Expand Down
1 change: 1 addition & 0 deletions src/contentbox/migrations/0008_contentbox_last_modified.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
# Generated by Django 3.2.8 on 2021-10-25 18:28

from datetime import datetime

from django.db import migrations, models


Expand Down
5 changes: 3 additions & 2 deletions src/contentbox/migrations/0011_historicalcontentbox.py
Original file line number Diff line number Diff line change
@@ -1,9 +1,10 @@
# Generated by Django 4.0.2 on 2022-02-28 23:10

from django.conf import settings
from django.db import migrations, models
import django.db.models.deletion
import simple_history.models
from django.conf import settings
from django.db import migrations, models

import web.multilingual.modelfields


Expand Down
Original file line number Diff line number Diff line change
@@ -1,8 +1,9 @@
# Generated by Django 4.0.1 on 2022-01-11 18:56

import re

import django.core.validators
from django.db import migrations, models
import re


class Migration(migrations.Migration):
Expand Down
1 change: 1 addition & 0 deletions src/contentbox/migrations/0013_contentbox_title.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
# Generated by Django 4.0.1 on 2022-01-11 19:54

from django.db import migrations

import web.multilingual.modelfields
from web.multilingual.data_structures import MultiLingualTextStructure

Expand Down
Loading