migrations: add finance tables and update members

v1-0-stable
Christian Merten 3 years ago
parent 6762ea1f2c
commit 73f8b4702d
Signed by: christian.merten
GPG Key ID: D953D69721B948B3

@ -0,0 +1,136 @@
# Generated by Django 4.0.1 on 2023-03-29 22:16
from django.db import migrations, models
import django.db.models.deletion
class Migration(migrations.Migration):
initial = True
dependencies = [
('members', '0002_remove_member_not_waiting_and_more'),
]
operations = [
migrations.CreateModel(
name='Ledger',
fields=[
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('name', models.CharField(max_length=30, verbose_name='Name')),
],
options={
'verbose_name': 'Ledger',
'verbose_name_plural': 'Ledgers',
},
),
migrations.CreateModel(
name='Statement',
fields=[
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('short_description', models.CharField(blank=True, max_length=30, verbose_name='Short description')),
('explanation', models.TextField(blank=True, verbose_name='Explanation')),
('night_cost', models.DecimalField(decimal_places=2, default=0, max_digits=5, verbose_name='Price per night')),
('submitted', models.BooleanField(default=False, verbose_name='Submitted')),
('submitted_date', models.DateTimeField(default=None, null=True, verbose_name='Submitted on')),
('confirmed', models.BooleanField(default=False, verbose_name='Confirmed')),
('confirmed_date', models.DateTimeField(default=None, null=True, verbose_name='Paid on')),
('confirmed_by', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='confirmed_statements', to='members.member', verbose_name='Authorized by')),
('created_by', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='created_statements', to='members.member', verbose_name='Created by')),
('excursion', models.OneToOneField(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, to='members.freizeit', verbose_name='Associated excursion')),
('submitted_by', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='submitted_statements', to='members.member', verbose_name='Submitted by')),
],
options={
'verbose_name': 'Statement',
'verbose_name_plural': 'Statements',
'permissions': [('may_edit_submitted_statements', 'Is allowed to edit submitted statements')],
},
),
migrations.CreateModel(
name='Transaction',
fields=[
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('reference', models.TextField(verbose_name='Reference')),
('amount', models.DecimalField(decimal_places=2, max_digits=6, verbose_name='Amount')),
('confirmed', models.BooleanField(default=False, verbose_name='Paid')),
('confirmed_date', models.DateTimeField(default=None, null=True, verbose_name='Paid on')),
('confirmed_by', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='confirmed_transactions', to='members.member', verbose_name='Authorized by')),
('ledger', models.ForeignKey(default=None, null=True, on_delete=django.db.models.deletion.SET_NULL, to='finance.ledger', verbose_name='Ledger')),
('member', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='members.member', verbose_name='Recipient')),
('statement', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='finance.statement', verbose_name='Statement')),
],
options={
'verbose_name': 'Transaction',
'verbose_name_plural': 'Transactions',
},
),
migrations.CreateModel(
name='Receipt',
fields=[
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('short_description', models.CharField(max_length=30, verbose_name='Short description')),
('amount', models.DecimalField(decimal_places=2, max_digits=6)),
('comments', models.TextField()),
('ledger', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='finance.ledger', verbose_name='Ledger')),
],
),
migrations.CreateModel(
name='Bill',
fields=[
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('short_description', models.CharField(max_length=30, verbose_name='Short description')),
('explanation', models.TextField(blank=True, verbose_name='Explanation')),
('amount', models.DecimalField(decimal_places=2, default=0, max_digits=6)),
('costs_covered', models.BooleanField(default=False, verbose_name='Covered')),
('refunded', models.BooleanField(default=False, verbose_name='Refunded')),
('proof', models.ImageField(blank=True, upload_to='bill_images', verbose_name='Proof')),
('paid_by', models.ForeignKey(null=True, on_delete=django.db.models.deletion.SET_NULL, to='members.member', verbose_name='Paid by')),
('statement', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='finance.statement', verbose_name='Statement')),
],
options={
'verbose_name': 'Bill',
'verbose_name_plural': 'Bills',
},
),
migrations.CreateModel(
name='StatementConfirmed',
fields=[
],
options={
'verbose_name': 'Paid statement',
'verbose_name_plural': 'Paid statements',
'permissions': (('may_manage_confirmed_statements', 'Can view and manage confirmed statements.'),),
'proxy': True,
'indexes': [],
'constraints': [],
},
bases=('finance.statement',),
),
migrations.CreateModel(
name='StatementSubmitted',
fields=[
],
options={
'verbose_name': 'Submitted statement',
'verbose_name_plural': 'Submitted statements',
'permissions': (('may_manage_submitted_statements', 'Can view and manage submitted statements.'),),
'proxy': True,
'indexes': [],
'constraints': [],
},
bases=('finance.statement',),
),
migrations.CreateModel(
name='StatementUnSubmitted',
fields=[
],
options={
'verbose_name': 'Statement in preparation',
'verbose_name_plural': 'Statements in preparation',
'proxy': True,
'indexes': [],
'constraints': [],
},
bases=('finance.statement',),
),
]

@ -0,0 +1,144 @@
# Generated by Django 4.0.1 on 2023-03-29 22:16
import datetime
import django.core.validators
from django.db import migrations, models
import django.db.models.deletion
import django.utils.timezone
class Migration(migrations.Migration):
dependencies = [
('members', '0001_initial_squashed_0015_alter_member_options_and_more'),
]
operations = [
migrations.RemoveField(
model_name='member',
name='not_waiting',
),
migrations.AddField(
model_name='freizeit',
name='kilometers_traveled',
field=models.IntegerField(default=0, validators=[django.core.validators.MinValueValidator(0)], verbose_name='Kilometers traveled'),
preserve_default=False,
),
migrations.AddField(
model_name='member',
name='iban',
field=models.CharField(blank=True, max_length=30, verbose_name='IBAN'),
),
migrations.AlterField(
model_name='freizeit',
name='date',
field=models.DateTimeField(default=datetime.datetime.today, verbose_name='Begin'),
),
migrations.AlterField(
model_name='freizeit',
name='end',
field=models.DateTimeField(default=datetime.datetime.today, verbose_name='End (optional)'),
),
migrations.AlterField(
model_name='freizeit',
name='tour_approach',
field=models.IntegerField(choices=[(0, 'Muskelkraft'), (1, 'ÖPNV'), (2, 'Fahrgemeinschaften')], default=0, verbose_name='Means of transportation'),
),
migrations.CreateModel(
name='PermissionMember',
fields=[
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('change_groups', models.ManyToManyField(blank=True, related_name='changeable_by', to='members.Group', verbose_name='May change members of groups')),
('change_members', models.ManyToManyField(blank=True, related_name='changeable_by', to='members.Member', verbose_name='May change members')),
('delete_groups', models.ManyToManyField(blank=True, related_name='deletable_by', to='members.Group', verbose_name='May delete members of groups')),
('delete_members', models.ManyToManyField(blank=True, related_name='deletable_by', to='members.Member', verbose_name='May delete members')),
('list_groups', models.ManyToManyField(blank=True, related_name='listable_by', to='members.Group', verbose_name='May list members of groups')),
('list_members', models.ManyToManyField(blank=True, related_name='listable_by', to='members.Member', verbose_name='May list members')),
('member', models.OneToOneField(on_delete=django.db.models.deletion.CASCADE, related_name='permissions', to='members.member')),
('view_groups', models.ManyToManyField(blank=True, related_name='viewable_by', to='members.Group', verbose_name='May view members of groups')),
('view_members', models.ManyToManyField(blank=True, related_name='viewable_by', to='members.Member', verbose_name='May view members')),
],
options={
'verbose_name': 'Permissions',
'verbose_name_plural': 'Permissions',
},
),
migrations.CreateModel(
name='PermissionGroup',
fields=[
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('change_groups', models.ManyToManyField(blank=True, related_name='group_members_changeable_by', to='members.Group', verbose_name='May change members of groups')),
('change_members', models.ManyToManyField(blank=True, related_name='group_members_changeable_by_group', to='members.Member', verbose_name='May change members')),
('delete_groups', models.ManyToManyField(blank=True, related_name='group_members_deletable_by', to='members.Group', verbose_name='May delete members of groups')),
('delete_members', models.ManyToManyField(blank=True, related_name='group_members_deletable_by', to='members.Member', verbose_name='May delete members')),
('group', models.OneToOneField(on_delete=django.db.models.deletion.CASCADE, related_name='permissions', to='members.group')),
('list_groups', models.ManyToManyField(blank=True, related_name='group_members_listable_by', to='members.Group', verbose_name='May list members of groups')),
('list_members', models.ManyToManyField(blank=True, related_name='group_members_listable_by', to='members.Member', verbose_name='May list members')),
('view_groups', models.ManyToManyField(blank=True, related_name='group_members_viewable_by', to='members.Group', verbose_name='May view members of groups')),
('view_members', models.ManyToManyField(blank=True, related_name='group_members_viewable_by', to='members.Member', verbose_name='May view members')),
],
options={
'verbose_name': 'Group permissions',
'verbose_name_plural': 'Group permissions',
},
),
migrations.CreateModel(
name='MemberWaitingList',
fields=[
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('prename', models.CharField(max_length=20, verbose_name='prename')),
('lastname', models.CharField(max_length=20, verbose_name='last name')),
('email', models.EmailField(default='', max_length=100)),
('email_parents', models.EmailField(blank=True, default='', max_length=100, verbose_name="Parents' Email")),
('cc_email_parents', models.BooleanField(default=True, verbose_name='Also send mails to parents')),
('birth_date', models.DateField(verbose_name='birth date')),
('comments', models.TextField(blank=True, default='', verbose_name='comments')),
('confirmed_mail', models.BooleanField(default=True, verbose_name='Email confirmed')),
('confirmed_mail_parents', models.BooleanField(default=True, verbose_name='Parents email confirmed')),
('confirm_mail_key', models.CharField(default='', max_length=32)),
('confirm_mail_parents_key', models.CharField(default='', max_length=32)),
('last_wait_confirmation', models.DateField(auto_now=True, verbose_name='Last wait confirmation')),
('wait_confirmation_key', models.CharField(default='', max_length=32)),
('wait_confirmation_key_expire', models.DateTimeField(default=django.utils.timezone.now)),
('registration_key', models.CharField(default='', max_length=32)),
('registration_expire', models.DateTimeField(default=django.utils.timezone.now)),
('invited_for_group', models.ForeignKey(blank=True, default=None, null=True, on_delete=django.db.models.deletion.SET_NULL, to='members.group', verbose_name='Invited for group')),
],
options={
'verbose_name': 'Waiter',
'verbose_name_plural': 'Waiters',
'permissions': (('may_manage_waiting_list', 'Can view and manage the waiting list.'),),
},
),
migrations.CreateModel(
name='LJPProposal',
fields=[
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('title', models.CharField(max_length=30, verbose_name='Title')),
('goals_alpinistic', models.TextField(verbose_name='Alpinistic goals')),
('goals_pedagogic', models.TextField(verbose_name='Pedagogic goals')),
('methods', models.TextField(verbose_name='Content and methods')),
('evaluation', models.TextField(verbose_name='Evaluation')),
('experiences', models.TextField(verbose_name='Experiences and possible improvements')),
('excursion', models.OneToOneField(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, to='members.freizeit', verbose_name='Excursion')),
],
options={
'verbose_name': 'LJP Proposal',
'verbose_name_plural': 'LJP Proposals',
},
),
migrations.CreateModel(
name='Intervention',
fields=[
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('date_start', models.DateTimeField(verbose_name='Starting time')),
('duration', models.DecimalField(decimal_places=2, max_digits=4, verbose_name='Duration in hours')),
('activity', models.TextField(verbose_name='Activity and method')),
('ljp_proposal', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='members.ljpproposal', verbose_name='LJP Proposal')),
],
options={
'verbose_name': 'Intervention',
'verbose_name_plural': 'Interventions',
},
),
]
Loading…
Cancel
Save