Didn't forget to add this time. Thanks merge conflict, actually useful.
This commit is contained in:
		
							
								
								
									
										0
									
								
								nerdshope/__init__.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										0
									
								
								nerdshope/__init__.py
									
									
									
									
									
										Normal file
									
								
							
							
								
								
									
										8
									
								
								nerdshope/admin.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										8
									
								
								nerdshope/admin.py
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,8 @@ | ||||
| from django.contrib import admin | ||||
|  | ||||
| # Register your models here. | ||||
|  | ||||
| from .models import BankAccount,Payment,OffDate | ||||
| admin.site.register(BankAccount) | ||||
| admin.site.register(Payment) | ||||
| admin.site.register(OffDate) | ||||
							
								
								
									
										6
									
								
								nerdshope/apps.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										6
									
								
								nerdshope/apps.py
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,6 @@ | ||||
| from django.apps import AppConfig | ||||
|  | ||||
|  | ||||
| class NerdshopeConfig(AppConfig): | ||||
|     default_auto_field = 'django.db.models.BigAutoField' | ||||
|     name = 'nerdshope' | ||||
							
								
								
									
										30
									
								
								nerdshope/models.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										30
									
								
								nerdshope/models.py
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,30 @@ | ||||
| from django.db import models | ||||
| from django.utils.timezone import now | ||||
|  | ||||
| # Create your models here. | ||||
| class BankAccount(models.Model): | ||||
| 	name=models.CharField(max_length=100) | ||||
| 	physical=models.CharField(max_length=100) | ||||
| 	currency=models.CharField(max_length=5) | ||||
| 	@property | ||||
| 	def balance(self): return sum(map(Payment.objects.filter(account=self))) | ||||
| 	 | ||||
| 	def __str__(self): | ||||
| 		return str(self.name)+', '+str(self.balance) | ||||
|  | ||||
| class Payment(models.Model): | ||||
| 	timestamp=models.DateTimeField(default=now) | ||||
| 	other_party=models.CharField(max_length=100) | ||||
| 	account=models.ForeignKey(BankAccount, on_delete=models.CASCADE) | ||||
| 	amount=models.IntegerField(default=0) | ||||
| 	reason=models.CharField(max_length=200) | ||||
| 	 | ||||
| 	def __str__(self): | ||||
| 		return str(self.timestamp)+', '+str(self.amount)+', '+str(self.reason) | ||||
|  | ||||
| class OffDate(models.Model): | ||||
| 	when=models.DateField(default=now) | ||||
| 	reason=models.CharField(max_length=50,default="Hall unavailable") | ||||
| 	 | ||||
| 	def __str__(self): | ||||
| 		return str(str.when)+': '+str(self.reason) | ||||
							
								
								
									
										3
									
								
								nerdshope/tests.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										3
									
								
								nerdshope/tests.py
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,3 @@ | ||||
| from django.test import TestCase | ||||
|  | ||||
| # Create your tests here. | ||||
							
								
								
									
										6
									
								
								nerdshope/urls.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										6
									
								
								nerdshope/urls.py
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,6 @@ | ||||
| from django.urls import include, path | ||||
| from . import views | ||||
|  | ||||
| urlpatterns = [ | ||||
| 	path('',views.nerdshope,name='shop'), | ||||
| ] | ||||
							
								
								
									
										16
									
								
								nerdshope/views.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										16
									
								
								nerdshope/views.py
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,16 @@ | ||||
| from django.shortcuts import render | ||||
| from rakka.utils import rerender | ||||
| from . import models | ||||
| from main.models import Update | ||||
|  | ||||
| @rerender | ||||
| def nerdshope(): | ||||
| 	accounts=models.BankAccount.objects.all() | ||||
| 	sums={curr:sum([n.balance for n in filter(lambda x:x.currency==curr,accounts)]) for curr in set(map(lambda x:x.currency,accounts))} | ||||
| 	moneyblob='</li>\n<li>'.join([f'{k}: {v}' for k,v in sums.items()]) | ||||
| 	moneyblob='Current monetary state: <ul>\n<li>'+moneyblob+'</li>\n</ul>' | ||||
| 	return {'title':"Nerds' Hope",'content':"Store stuff. TODOing. Will include inventory and budget. <a href='https://facebook.com/nerdshope'>FB</a><br/>\nAddress is 21 Kensington St, Glenorchy<br/>\nOff dates 2022: 29th April, 6th May, 27th May, 17th June, 24th June<br/>\n"+moneyblob,'date':Update.objects.get_or_create(page='nh_main')[0].date} | ||||
|  | ||||
| @rerender | ||||
| def budget(): | ||||
| 	pass | ||||
		Reference in New Issue
	
	Block a user
	