From 78da242ce7a48dfa60d921e84e969cbe228d7ba1 Mon Sep 17 00:00:00 2001 From: root Date: Mon, 5 Oct 2020 19:20:44 +0100 Subject: [PATCH] i understand database slightly better --- app.db | Bin 57344 -> 57344 bytes app.py | 26 ++++++++++++++++++++++---- templates/index.html.j2 | 8 ++++---- 3 files changed, 26 insertions(+), 8 deletions(-) diff --git a/app.db b/app.db index e7cfd28bdeef95b7046bd3fbb6fc0127f1413780..9b9e1b00c4b2d31ce7dc2f77734a97fb6a382066 100644 GIT binary patch delta 489 zcmZoTz}#?vd4jay5(WkaJ|JcWViq9onW$qdzl1?gW&kN6F-MM6E_2=q9ViO+y0V@@{B-^ ztfVAR6$68tr=MrAhpUU9e~_=EPeFcBUcUXN02TobCjJZt{>}UuKm%g<>phv+893!t zjUB^11A@I>L!3R5^Ye2Q%2ShyGfPs7GLy3v5{pZ6QY#fw@=Fww^K*?1j0|)Q4Rj4m z6%5U-OwFu}P4vtR4NWafycvN;DFcmiarN;Ga}9EI@^K|(m?RF<42(f;Wn<*u%fP=E z=+e#n&W?cZ@f0gjOYjy{Ht<|Y=F#zy98rODauP5};qQ4ihMiBw~Cp^<^5 nsmUS(0WL0J*f8?HXW)OoSZm#4CVdP9= zW)~L~W$aX+e2se{XL){6c05SM=31T>V{ZN<3{3oU8TjY&U*0SzFp)o5m64l)Q&v(H z=n4h~H%~v$U=LRpKmQm#1Gq mkiUD7YjAL+vxj4-bBL$EACg|9O#v(dn^`vekzcgI0EhquIz$`* diff --git a/app.py b/app.py index e52ca72..d1a5222 100644 --- a/app.py +++ b/app.py @@ -6,6 +6,7 @@ abort as Abort from flask_sqlalchemy import SQLAlchemy as DBM from enum import Enum +from datetime import datetime as DT from time import sleep # Init @@ -49,6 +50,8 @@ class LinkType(Enum): class Artist(DB.Model): artist_id = DB.Column(DB.Integer, primary_key=True, nullable=False, unique=True) name = DB.Column(DB.String, nullable=False) + works = DB.relationship("Work", back_populates="artist") + transactions = DB.relationship("Transaction", back_populates="artist") social_twitter = DB.Column(DB.String) social_telegram = DB.Column(DB.String) social_mastodon = DB.Column(DB.String) @@ -60,9 +63,12 @@ class Artist(DB.Model): class Work(DB.Model): work_id = DB.Column(DB.Integer, primary_key=True, nullable=False, unique=True) artist_id = DB.Column(DB.Integer, DB.ForeignKey('artist.artist_id'), nullable=False) + artist = DB.relationship("Artist", back_populates="works", uselist=False) state = DB.Column(DB.Enum(WorkState), nullable=False) purchase_type = DB.Column(DB.Enum(TxType),nullable=False) - work_desc = DB.Column(DB.String) + links = DB.relationship("WorkLink", back_populates="work") + transaction = DB.relationship("Transaction", back_populates="work", uselist=False) + desc = DB.Column(DB.String) date_proposed = DB.Column(DB.DateTime) date_accepted = DB.Column(DB.DateTime) date_paid = DB.Column(DB.DateTime) @@ -71,14 +77,17 @@ class Work(DB.Model): class WorkLink(DB.Model): link_id = DB.Column(DB.Integer, primary_key=True, nullable=False, unique=True) work_id = DB.Column(DB.Integer, DB.ForeignKey('work.work_id'), nullable=False) + work = DB.relationship("Work", back_populates="links", uselist=False) linktype = DB.Column(DB.Enum(LinkType), nullable=False) - descr = DB.Column(DB.String, nullable=False) + desc = DB.Column(DB.String, nullable=False) uri = DB.Column(DB.String, nullable=False) datetime = DB.Column(DB.DateTime, nullable=False) class Transaction(DB.Model): transaction_id = DB.Column(DB.Integer, primary_key=True, nullable=False, unique=True) artist_id = DB.Column(DB.Integer, DB.ForeignKey('artist.artist_id'), nullable=False) + artist = DB.relationship("Artist", back_populates="transactions", uselist=False) work_id = DB.Column(DB.Integer, DB.ForeignKey('work.work_id'), nullable=False) + work = DB.relationship("Work", back_populates="transaction", uselist=False) processor = DB.Column(DB.Enum(TxProcessor), nullable=False) processor_txid = DB.Column(DB.String, unique=True, nullable=False) currency = DB.Column(DB.Enum(Currency), nullable=False) @@ -96,11 +105,20 @@ def PopulateTestData(): DB.session.add(tArtist) DB.session.commit() tWork=Work(artist_id=tArtist.artist_id, - state=WorkState.FINISHED, purchase_type=TxType.NORMAL) + state=WorkState.FINISHED, purchase_type=TxType.NORMAL, desc="porno?") tWorkTwo=Work(artist_id=tArtist.artist_id, state=WorkState.INPROGRESS, purchase_type=TxType.YCHAUCTION) DB.session.add_all((tWork, tWorkTwo)) DB.session.commit() + DB.session.add(WorkLink(work_id=tWork.work_id, linktype=LinkType.DELIVERABLE, + uri="rick astley dot com", desc="cool website", datetime=DT.utcnow())) + DB.session.add(WorkLink(work_id=tWork.work_id, linktype=LinkType.WIPSKETCH, + uri="rick astley dot com", desc="cool website", datetime=DT.utcnow())) + DB.session.commit() + DB.session.add(Transaction(artist_id=tArtist.artist_id, work_id=tWork.work_id, + currency=Currency.GBP, amount=69.42, processor=TxProcessor.PAYPAL, + processor_txid="1A7489327fuck", datetime=DT.utcnow())) + DB.session.commit() #Routes @app.route('/') @@ -111,7 +129,7 @@ def index(): (Work.state==WorkState.PAID)).join(Artist) _inp=Work.query.filter_by(state=WorkState.INPROGRESS).join(Artist) _cmp=Work.query.filter_by(state=WorkState.FINISHED).join(Artist) - + return Render("index.html.j2", ideas=_idea, cnfpaid=_conf, inprog=_inp, done=_cmp) @app.route('/list/') diff --git a/templates/index.html.j2 b/templates/index.html.j2 index 4d1d94e..4fc9127 100644 --- a/templates/index.html.j2 +++ b/templates/index.html.j2 @@ -11,7 +11,7 @@
Ideas
{% for work in ideas %}
-
{{ work.work_desc }}
+
{{ work.desc|title }}
status {{ work.state.name|title }} and artist {{ work.artist.name }}
{% endfor %} @@ -20,7 +20,7 @@
Confirmed/Paid
{% for work in cnfpaid %}
-
{{ work.work_desc }}
+
{{ work.desc|title }}
status {{ work.state.name|title }} and artist {{ work.artist.name }}
{% endfor %} @@ -29,7 +29,7 @@
In-Progress
{% for work in inprog %}
-
{{ work.work_desc }}
+
{{ work.desc|title }}
status {{ work.state.name|title }} and artist {{ work.artist.name }}
{% endfor %} @@ -38,7 +38,7 @@
Completed
{% for work in done %}
-
{{ work.work_desc }}
+
{{ work.desc|title }}
status {{ work.state.name|title }} and artist {{ work.artist.name }}
{% endfor %}