mirror of
https://gitlab.crans.org/bde/nk20
synced 2025-06-28 12:32:49 +02:00
Clean up master
This commit is contained in:
0
adherents/__init__.py
Normal file
0
adherents/__init__.py
Normal file
51
adherents/locale/fr/LC_MESSAGES/django.po
Normal file
51
adherents/locale/fr/LC_MESSAGES/django.po
Normal file
@ -0,0 +1,51 @@
|
||||
# SOME DESCRIPTIVE TITLE.
|
||||
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
|
||||
# This file is distributed under the same license as the PACKAGE package.
|
||||
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
|
||||
#
|
||||
#, fuzzy
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2019-07-08 13:45+0200\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
"Language: \n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
|
||||
|
||||
#: models.py:26
|
||||
msgid "phone number"
|
||||
msgstr "numéro de téléphone"
|
||||
|
||||
#: models.py:30
|
||||
msgid "section"
|
||||
msgstr "section"
|
||||
|
||||
#: models.py:31
|
||||
msgid "e.g. \"1A0\", \"9A♥\", \"SAPHIRE\""
|
||||
msgstr "e.g. \"1A0\", \"9A♥\", \"SAPHIRE\""
|
||||
|
||||
#: models.py:35 models.py:36
|
||||
msgid "user profile"
|
||||
msgstr "profil utilisateur"
|
||||
|
||||
#: models.py:52
|
||||
msgid "date"
|
||||
msgstr "date"
|
||||
|
||||
#: models.py:57
|
||||
msgid "amount"
|
||||
msgstr "montant"
|
||||
|
||||
#: models.py:61
|
||||
msgid "membership fee"
|
||||
msgstr "cotisation"
|
||||
|
||||
#: models.py:62
|
||||
msgid "membership fees"
|
||||
msgstr "cotisations"
|
43
adherents/migrations/0001_initial.py
Normal file
43
adherents/migrations/0001_initial.py
Normal file
@ -0,0 +1,43 @@
|
||||
# Generated by Django 2.2.3 on 2019-07-08 11:48
|
||||
|
||||
from django.conf import settings
|
||||
from django.db import migrations, models
|
||||
import django.db.models.deletion
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
initial = True
|
||||
|
||||
dependencies = [
|
||||
migrations.swappable_dependency(settings.AUTH_USER_MODEL),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.CreateModel(
|
||||
name='Profile',
|
||||
fields=[
|
||||
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
|
||||
('phone_number', models.CharField(max_length=255, verbose_name='phone number')),
|
||||
('section', models.CharField(help_text='e.g. "1A0", "9A♥", "SAPHIRE"', max_length=255, verbose_name='section')),
|
||||
('user', models.OneToOneField(on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL)),
|
||||
],
|
||||
options={
|
||||
'verbose_name': 'user profile',
|
||||
'verbose_name_plural': 'user profile',
|
||||
},
|
||||
),
|
||||
migrations.CreateModel(
|
||||
name='MembershipFee',
|
||||
fields=[
|
||||
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
|
||||
('date', models.DateField(max_length=255, verbose_name='date')),
|
||||
('amount', models.DecimalField(decimal_places=2, max_digits=5, verbose_name='amount')),
|
||||
('user', models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, to=settings.AUTH_USER_MODEL)),
|
||||
],
|
||||
options={
|
||||
'verbose_name': 'membership fee',
|
||||
'verbose_name_plural': 'membership fees',
|
||||
},
|
||||
),
|
||||
]
|
0
adherents/migrations/__init__.py
Normal file
0
adherents/migrations/__init__.py
Normal file
75
adherents/models.py
Normal file
75
adherents/models.py
Normal file
@ -0,0 +1,75 @@
|
||||
# -*- mode: python; coding: utf-8 -*-
|
||||
# Copyright (C) 2016-2019 by BDE
|
||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||
|
||||
from django.conf import settings
|
||||
from django.contrib.auth.models import User
|
||||
from django.db import models
|
||||
from django.db.models.signals import post_save
|
||||
from django.dispatch import receiver
|
||||
from django.utils.translation import gettext_lazy as _
|
||||
|
||||
|
||||
class Profile(models.Model):
|
||||
"""
|
||||
An user profile
|
||||
|
||||
We do not want to patch the Django Contrib Auth User class
|
||||
so this model add an user profile with additional information.
|
||||
"""
|
||||
user = models.OneToOneField(
|
||||
settings.AUTH_USER_MODEL,
|
||||
on_delete=models.CASCADE,
|
||||
)
|
||||
phone_number = models.CharField(
|
||||
max_length=255,
|
||||
verbose_name=_('phone number'),
|
||||
)
|
||||
section = models.CharField(
|
||||
max_length=255,
|
||||
verbose_name=_('section'),
|
||||
help_text=_('e.g. "1A0", "9A♥", "SAPHIRE"'),
|
||||
)
|
||||
|
||||
class Meta:
|
||||
verbose_name = _('user profile')
|
||||
verbose_name_plural = _('user profile')
|
||||
|
||||
def __str__(self):
|
||||
return self.user.get_username()
|
||||
|
||||
|
||||
class MembershipFee(models.Model):
|
||||
"""
|
||||
User can become member by paying a membership fee
|
||||
"""
|
||||
user = models.ForeignKey(
|
||||
settings.AUTH_USER_MODEL,
|
||||
on_delete=models.PROTECT,
|
||||
)
|
||||
date = models.DateField(
|
||||
max_length=255,
|
||||
verbose_name=_('date'),
|
||||
)
|
||||
amount = models.DecimalField(
|
||||
max_digits=5, # Max 999.99 €
|
||||
decimal_places=2,
|
||||
verbose_name=_('amount'),
|
||||
)
|
||||
|
||||
class Meta:
|
||||
verbose_name = _('membership fee')
|
||||
verbose_name_plural = _('membership fees')
|
||||
|
||||
def __str__(self):
|
||||
return self.user.get_username()
|
||||
|
||||
|
||||
@receiver(post_save, sender=User)
|
||||
def save_user_profile(sender, instance, created, **_kwargs):
|
||||
"""
|
||||
Hook to save an user profile when an user is updated
|
||||
"""
|
||||
if created:
|
||||
Profile.objects.create(user=instance)
|
||||
instance.profile.save()
|
0
adherents/tests/__init__.py
Normal file
0
adherents/tests/__init__.py
Normal file
Reference in New Issue
Block a user