remotes/1693045480750635534/spooky-22
Aevann1 2021-09-17 16:01:47 +02:00
parent 495d40cf7f
commit 35a6a2fa28
2 changed files with 137 additions and 3 deletions

View File

@ -23,6 +23,53 @@ defaultcolor = environ.get("DEFAULT_COLOR", "fff").strip()
defaulttimefilter = environ.get("DEFAULT_TIME_FILTER", "all").strip()
cardview = bool(int(environ.get("CARD_VIEW", 1)))
if site_name == "Drama":
AWARDS = {
"ban": {
"kind": "ban",
"title": "One-Day Ban",
"description": "Bans the author for a day.",
"icon": "fas fa-gavel",
"color": "text-danger",
"price": 5000
},
"shit": {
"kind": "shit",
"title": "Shit",
"description": "Makes flies swarm a post.",
"icon": "fas fa-poop",
"color": "text-black-50",
"price": 1000
},
"stars": {
"kind": "stars",
"title": "Stars",
"description": "Puts stars on the post.",
"icon": "fas fa-sparkles",
"color": "text-warning",
"price": 1000
}
}
else:
AWARDS = {
"shit": {
"kind": "shit",
"title": "shit",
"description": "Makes flies swarm a post.",
"icon": "fas fa-poop",
"color": "text-black-50",
"price": 1000
},
"stars": {
"kind": "stars",
"title": "Stars",
"description": "Puts stars on the post.",
"icon": "fas fa-sparkles",
"color": "text-warning",
"price": 1000
}
}
class User(Base, Stndrd, Age_times):
__tablename__ = "users"
id = Column(Integer, primary_key=True)
@ -133,6 +180,18 @@ class User(Base, Stndrd, Age_times):
super().__init__(**kwargs)
@property
@lazy
def user_awards(v):
return_value = list(AWARDS.values())
user_awards = v.awards
for val in return_value: val['owned'] = user_awards.filter_by(kind=val['kind'], submission_id=None, comment_id=None).count()
return return_value
@property
@lazy
def referral_count(self):

View File

@ -1,5 +1,80 @@
<script src='/assets/js/bundle.js'></script>
<input type="hidden" id="awardTarget" value="" />
<div class="modal fade" id="awardModal" tabindex="-1" role="dialog" aria-labelledby="awardModalTitle" aria-hidden="true">
</div>
<div class="modal-dialog modal-dialog-scrollable modal-dialog-centered" role="document">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title">Give Award</h5>
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true"><i class="far fa-times"></i></span>
</button>
</div>
<div id="awardModalBody" class="modal-body">
<form class="pt-3 pb-0" action="/post/{{p.id}}/awards" method="post">
<div class="card-columns awards-wrapper">
{% for award in v.awards %}
<div>
<label class="card" onclick="document.getElementById('desc-{{award.kind}}').classList.toggle('d-none');document.getElementById('giveaward').disabled=false">
<i class="{{award.icon}} {{award.color}}"></i><br />
<span class="d-block pt-2" style="font-weight: bold; font-size: 14px;">{{award.title}}</span>
<span class="text-muted">{{award.owned}} owned</span>
</label>
</div>
<div id="desc-{{award.kind}}" class="d-none">
<div class="award-desc p-3">
<i style="font-size: 35px;"></i>
<div style="margin-left: 15px;">
<strong>{{pickedAward.title}} Award</strong><br />
<span class="text-muted">{{pickedAward.description}}</span>
</div>
</div>
<label for="note" class="pt-4">Note (optional):</label>
<textarea id="note" name="note" class="form-control" placeholder="Note to include in award notification"></textarea>
</div>
<input name="{{award.kind}}" hidden>
<input id="giveaward" class="btn btn-primary" type="submit" value="Give Award" disabled>
{% endfor %}
</div>
</form>
</div>
</div>
</div>
</div>
<style>
.awards-wrapper input[type="radio"] {
display: none;
}
.awards-wrapper label {
cursor: pointer;
padding: 15px;
text-align: center;
text-transform: none!important;
}
.awards-wrapper label i {
font-size: 45px;
}
.awards-wrapper label.disabled {
opacity: 0.6;
}
.awards-wrapper label:hover {
/*background-color: rgba(173, 226, 255, 0.7)!important;*/
background-color: var(--primary)!important;
background-opacity: 0.4;
}
.awards-wrapper input[type="radio"]:checked+label {
/*background-color: rgba(173, 226, 255, 0.9)!important;*/
background-color: var(--primary)!important;
background-opacity: 0.9;
}
.award-desc {
border-radius: 5px;
background-color: rgba(221, 221, 221, 0.23);
display: flex;
}
</style>