Skip to content

Commit

Permalink
Merge pull request #1126 from CodingPirates/Features/finanskonto
Browse files Browse the repository at this point in the history
Features/finanskonto for foreninger
  • Loading branch information
lakridserne authored Nov 13, 2024
2 parents ff2f6d1 + bc58e93 commit 3729709
Show file tree
Hide file tree
Showing 6 changed files with 171 additions and 55 deletions.
124 changes: 71 additions & 53 deletions members/admin/union_admin.py
Original file line number Diff line number Diff line change
Expand Up @@ -99,6 +99,77 @@ class UnionAdmin(admin.ModelAdmin):

actions = ["export_csv_union_info"]

def get_fieldsets(self, request, obj=None):
# 20241113: https://stackoverflow.com/questions/16102222/djangoremove-superuser-checkbox-from-django-admin-panel-when-login-staff-users

if not obj:
return self.add_fieldsets

info_fields = (
"bank_main_org",
"bank_account",
"statues",
"founded_at",
"closed_at",
"gl_account",
)

if not request.user.has_perm("members.showledgeraccount"):
info_fields = (
"bank_main_org",
"bank_account",
"statues",
"founded_at",
"closed_at",
)

return [
(
"Navn og Adresse",
{
"fields": ("name", "email", "address"),
"description": "<p>Udfyld navnet på foreningen (f.eks København, \
vestjylland) og adressen<p>",
},
),
(
"Bestyrelsen nye felter",
{
"fields": (
"chairman",
"second_chair",
"cashier",
"secretary",
"board_members",
)
},
),
(
"Bestyrelsen gamle felter",
{
"fields": (
"chairman_old",
"chairman_email_old",
"second_chair_old",
"second_chair_email_old",
"cashier_old",
"cashier_email_old",
"secretary_old",
"secretary_email_old",
"board_members_old",
)
},
),
(
"Info",
{
"fields": info_fields,
"description": "Indsæt et link til jeres vedtægter, hvornår I er stiftet (har holdt stiftende \
generalforsamling) og jeres bankkonto hvis I har sådan en til foreningen.",
},
),
]

# Solution found on https://stackoverflow.com/questions/57056994/django-model-form-with-only-view-permission-puts-all-fields-on-exclude
# formfield_for_foreignkey described in documentation here: https://docs.djangoproject.com/en/4.2/ref/contrib/admin/#django.contrib.admin.ModelAdmin.formfield_for_foreignkey
def formfield_for_foreignkey(self, db_field, request, **kwargs):
Expand All @@ -121,59 +192,6 @@ def get_queryset(self, request):
return qs
return qs.filter(adminuserinformation__user=request.user)

fieldsets = [
(
"Navn og Adresse",
{
"fields": ("name", "email", "address"),
"description": "<p>Udfyld navnet på foreningen (f.eks København, \
vestjylland) og adressen<p>",
},
),
(
"Bestyrelsen nye felter",
{
"fields": (
"chairman",
"second_chair",
"cashier",
"secretary",
"board_members",
)
},
),
(
"Bestyrelsen gamle felter",
{
"fields": (
"chairman_old",
"chairman_email_old",
"second_chair_old",
"second_chair_email_old",
"cashier_old",
"cashier_email_old",
"secretary_old",
"secretary_email_old",
"board_members_old",
)
},
),
(
"Info",
{
"fields": (
"bank_main_org",
"bank_account",
"statues",
"founded_at",
"closed_at",
),
"description": "Indsæt et link til jeres vedtægter, hvornår I er stiftet (har holdt stiftende \
generalforsamling) og jeres bankkonto hvis I har sådan en til foreningen.",
},
),
]

def union_link(self, item):
url = reverse("admin:members_union_change", args=[item.id])
link = '<a href="%s">%s</a>' % (url, escape(item.name))
Expand Down
42 changes: 42 additions & 0 deletions members/migrations/0058_alter_union_options_union_gl_account.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
# Generated by Django 4.2.11 on 2024-11-13 19:56

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


class Migration(migrations.Migration):

dependencies = [
("members", "0057_municipality"),
]

operations = [
migrations.AlterModelOptions(
name="union",
options={
"ordering": ["name"],
"permissions": (
("view_all_unions", "Can view all Foreninger"),
("showledgeraccount", "Show General Ledger Account"),
),
"verbose_name": "Forening",
"verbose_name_plural": "Foreninger",
},
),
migrations.AddField(
model_name="union",
name="gl_account",
field=models.CharField(
blank=True,
help_text="Kontonummer i formatet 1234",
max_length=4,
validators=[
django.core.validators.RegexValidator(
message="Indtast kontonummer i det rigtige format.",
regex="^[0-9]{4}",
)
],
verbose_name="Finanskonto:",
),
),
]
16 changes: 16 additions & 0 deletions members/migrations/0059_merge_20241113_2111.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
# Generated by Django 4.2.11 on 2024-11-13 20:11

from django.db import migrations


class Migration(migrations.Migration):

dependencies = [
(
"members",
"0058_alter_municipality_options_remove_municipality_email_and_more",
),
("members", "0058_alter_union_options_union_gl_account"),
]

operations = []
25 changes: 25 additions & 0 deletions members/migrations/0060_alter_union_options.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
# Generated by Django 4.2.11 on 2024-11-13 21:20

from django.db import migrations


class Migration(migrations.Migration):

dependencies = [
("members", "0059_merge_20241113_2111"),
]

operations = [
migrations.AlterModelOptions(
name="union",
options={
"ordering": ["name"],
"permissions": (
("view_all_unions", "Can view all Foreninger"),
("show_ledger_account", "Show General Ledger Account"),
),
"verbose_name": "Forening",
"verbose_name_plural": "Foreninger",
},
),
]
17 changes: 16 additions & 1 deletion members/models/union.py
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,10 @@ class Meta:
verbose_name_plural = "Foreninger"
verbose_name = "Forening"
ordering = ["name"]
permissions = (("view_all_unions", "Can view all Foreninger"),)
permissions = (
("view_all_unions", "Can view all Foreninger"),
("show_ledger_account", "Show General Ledger Account"),
)

help_union = """Vi tilføjer automatisk "Coding Pirates" foran navnet når vi nævner det de fleste steder på siden."""
name = models.CharField("Foreningens navn", max_length=200, help_text=help_union)
Expand Down Expand Up @@ -88,6 +91,18 @@ class Meta:
)
],
)
gl_account = models.CharField(
"Finanskonto:",
max_length=4,
blank=True,
help_text="Kontonummer i formatet 1234",
validators=[
RegexValidator(
regex="^[0-9]{4}",
message="Indtast kontonummer i det rigtige format.",
)
],
)

def __str__(self):
return self.name
Expand Down
2 changes: 1 addition & 1 deletion members/schema.py
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@ class Meta:
class UnionType(DjangoObjectType):
class Meta:
model = Union
exclude = ("bank_main_org", "bank_account")
exclude = ("bank_main_org", "bank_account", "gl_account")


class DepartmentType(DjangoObjectType):
Expand Down

0 comments on commit 3729709

Please sign in to comment.