Created
March 7, 2022 16:45
-
-
Save paulwababu/73c1055bb155489ea5510dab474e44e4 to your computer and use it in GitHub Desktop.
Church Models
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import os, random | |
from django.db import models | |
from django.utils.timezone import now | |
from django.db import models | |
from django.db.models import Model | |
from django.db.models import Sum | |
from django.forms.fields import DateField | |
from django.contrib.admin.widgets import AdminDateWidget | |
from django.db import models | |
# | |
from django_tenants.models import TenantMixin, DomainMixin | |
def filename_ext(filepath): | |
file_base = os.path.basename(filepath) | |
filename, ext = os.path.splitext(file_base) | |
return filename, ext | |
def upload_image_path(instance, filename): | |
new_filename = random.randint(1, 9498594795) | |
name, ext = filename_ext(filename) | |
final_filename = "{new_filename}{ext}".format(new_filename=new_filename, ext=ext) | |
return "pictures/{new_filename}/{final_filename}".format(new_filename=new_filename, final_filename=final_filename) | |
class Ministry(models.Model): | |
name = models.CharField(max_length=255) | |
description = models.TextField() | |
leader = models.CharField(max_length=255) | |
def __str__(self): | |
return self.name | |
class Shepherd(models.Model): | |
name = models.CharField(max_length=255) | |
age = models.PositiveIntegerField() | |
def __str__(self): | |
return self.name | |
class MemberManager(models.Manager): | |
def get_by_id(self, id): | |
qs = self.get_queryset().filter(id=id) | |
if qs.count() == 1: | |
return qs.first() | |
return None | |
def active(self): | |
qs = self.get_queryset().filter(active=True) | |
return qs | |
def deleted(self): | |
return self.get_queryset().filter(active=False) | |
def new_believer_school(self): | |
# return self.get_queryset().filter(new_believer_school=True) | |
return self.active().filter(new_believer_school=True) | |
def pays_tithe(self): | |
# return self.get_queryset().filter(pays_tithe=True) | |
return self.active().filter(pays_tithe=True) | |
def working(self): | |
# return self.get_queryset().filter(working=True) | |
return self.active().filter(working=True) | |
def schooling(self): | |
# return self.get_queryset().filter(schooling=True) | |
return self.active().filter(schooling=True) | |
class Member(models.Model): | |
name = models.CharField(max_length=255) | |
active = models.BooleanField() | |
shepherd = models.ForeignKey(Shepherd, on_delete=models.CASCADE, null=True, blank=True) | |
ministry = models.ForeignKey(Ministry, on_delete=models.CASCADE, null=True, blank=True) | |
telephone = models.PositiveIntegerField(null=True, blank=True) | |
location = models.CharField(max_length=255) | |
fathers_name = models.CharField(max_length=255, null=True, blank=True) | |
mothers_name = models.CharField(max_length=255, null=True, blank=True) | |
guardians_name = models.CharField(max_length=255, null=True, blank=True) | |
new_believer_school = models.BooleanField() | |
pays_tithe = models.BooleanField() | |
working = models.BooleanField() | |
schooling = models.BooleanField() | |
picture = models.ImageField(upload_to=upload_image_path, null=True, blank=True) | |
objects = MemberManager() | |
def __str__(self): | |
return self.name | |
class TestDb(models.Model): | |
field = models.CharField(max_length=120) | |
class Church(TenantMixin): | |
name = models.CharField(max_length=100) | |
class Domain(DomainMixin): | |
pass | |
class StaffDetails(models.Model): | |
image = models.ImageField(upload_to="media", default="Photo") | |
FistName= models.CharField(max_length=150,blank=False) | |
SecondName = models.CharField(max_length=150,blank=False) | |
Salary = models.IntegerField(default=0) | |
Role = models.CharField(max_length=20, default="MALE", blank=False) | |
Duties = models.CharField(max_length=1000, blank=False) | |
choices=( | |
('Male','Male'), | |
('Female', 'Female')) | |
Sex = models.CharField(max_length=7, default="MALE", blank=False, choices=choices) | |
Contact = models.CharField(max_length=100, default="Tel or Email") | |
def __str__(self): | |
return self.FistName + ' ' + self.SecondName | |
class Salary(models.Model): | |
months = ( | |
('January','January'),('February','February'),('March', 'March'),('April', 'April') | |
,('May','May'),('June', 'June'),('July', 'July'),('August','August'), | |
('September', 'September'),('October', 'October'),('November','November'),('December', 'December') | |
) | |
Date = models.DateField() | |
Name = models.CharField(max_length=100, blank=False) | |
Month = models.CharField(max_length=12,choices=months, blank=False) | |
Amount = models.IntegerField(default=0) | |
AmountInWords = models.CharField(max_length=500, blank=False) | |
def __str__(self): | |
return self.Name | |
class Sundry(Model): | |
Date = models.DateField() | |
PaymentMadeTo = models.CharField(max_length=100, blank=False) | |
ReasonForPayment = models.CharField(max_length=250) | |
Amount = models.IntegerField(default=0) | |
AmountInWords = models.CharField(max_length=500, blank=False) | |
def __str__(self): | |
return self.PaymentMadeTo | |
class Offerings(Model): | |
Date = models.DateField() | |
DayOfTheWeek = models.CharField(max_length=100, blank=False) | |
TotalOffering = models.IntegerField(default=0) | |
AmountInWords = models.CharField(max_length=500, blank=False) | |
def __str__(self): | |
return self.DayOfTheWeek | |
class Tithes(Model): | |
Date = models.DateField() | |
DayOfTheWeek = models.CharField(max_length=100, blank=False) | |
TitheMadeBy = models.CharField(max_length=100, blank=False) | |
Amount = models.IntegerField(default=0) | |
AmountInWords = models.CharField(max_length=500, blank=False) | |
def __str__(self): | |
return self.TitheMadeBy | |
class Pledges(Model): | |
Date = models.DateField() | |
DayOfTheWeek = models.CharField(max_length=100, blank=False) | |
PledgeMadeBy = models.CharField(max_length=100, blank=False) | |
Reason = models.CharField(max_length=100, null=True) | |
Amount = models.IntegerField(default=0) | |
AmountInWords = models.CharField(max_length=500, blank=False) | |
def __str__(self): | |
return self.PledgeMadeBy | |
class Spend(models.Model): | |
reason=( | |
('Mechanic','Car Repairing'),('WaterBills','Water Bills'),('Electricity','Electricity Bills'),('URA','Paying Revenue') | |
) | |
Date = models.DateField() | |
PaymentMadeTo = models.CharField(max_length=100,blank=False) | |
ReasonForPayment = models.CharField(max_length=100, choices=reason) | |
Amount = models.IntegerField(default=0) | |
AmountInWords = models.CharField(max_length=500, blank=False) | |
def __str__(self): | |
return 'Name:{0}, Reason:{1}, Amount: {2}'.format(self.PaymentMadeTo, self.ReasonForPayment, self.Amount) | |
########################################## | |
#REPORT ARCHIVING MODELS AFTER SUBMISSION # | |
########################################## | |
class ExpensesReportArchive(models.Model): | |
Date = models.DateField() | |
Name = models.CharField(max_length=100, default='Name', null=True) | |
Amount = models.FloatField(default=0.0, null=True) | |
Reason = models.CharField(max_length=100,null=True) | |
month = models.CharField(max_length=100,null=True) | |
year = models.CharField(max_length=100,null=True) | |
def __str__(self): | |
return 'Name: {1} Reason:{2} Amount:{0}'.format(self.Name,self.Reason, self.Amount) | |
class SundryReportArchive(models.Model): | |
Date = models.DateField() | |
Name = models.CharField(max_length=100, default='Name', null=True) | |
Amount = models.FloatField(default=0.0, null=True) | |
Reason = models.CharField(max_length=100,null=True) | |
month = models.CharField(max_length=100,null=True) | |
year = models.CharField(max_length=100,null=True) | |
def __str__(self): | |
return 'Name: {1} Reason:{2} Amount:{0}'.format(self.Name,self.Reason, self.Amount) | |
class SalaryReportArchive(models.Model): | |
Date = models.DateField() | |
Staff = models.CharField( max_length=100,null=True) | |
Month = models.CharField(max_length=100,null=True) | |
Amount = models.IntegerField(default=0) | |
archivedmonth = models.CharField(max_length=100,null=True) | |
archivedyear = models.CharField(max_length=100,null=True) | |
def __str__(self): | |
return 'Name: {1} Amount:{0}'.format(self.Staff, self.Amount) | |
class OfferingsReportArchive(models.Model): | |
Date = models.DateField(()) | |
Day = models.CharField( max_length=100,null=True) | |
Amount = models.IntegerField(default=0) | |
archivedmonth = models.CharField(max_length=100,null=True) | |
archivedyear = models.CharField(max_length=100,null=True) | |
def __str__(self): | |
return 'Name: {1} Amount:{0}'.format(self.Day, self.Amount) | |
class TithesReportArchive(models.Model): | |
Date = models.DateField() | |
Name = models.CharField( max_length=100,null=True) | |
Day = models.CharField(max_length=100, null=True) | |
Amount = models.IntegerField(default=0) | |
archivedmonth = models.CharField(max_length=100,null=True) | |
archivedyear = models.CharField(max_length=100,null=True) | |
def __str__(self): | |
return 'Name: {1} Amount:{0}'.format(self.Name, self.Amount) | |
class PledgesReportArchive(models.Model): | |
Date = models.DateField() | |
Name = models.CharField( max_length=100,null=True) | |
Day = models.CharField(max_length=100,null=True) | |
Reason = models.CharField(max_length=100, null=True) | |
Amount = models.IntegerField(default=0) | |
archivedmonth = models.CharField(max_length=100,null=True) | |
archivedyear = models.CharField(max_length=100,null=True) | |
def __str__(self): | |
return 'Name: {1} Amount:{0}'.format(self.Name, self.Amount) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment