dynamic design
This commit is contained in:
parent
b5f0aa3f2d
commit
3ae48d5602
9 changed files with 175 additions and 77 deletions
BIN
db.sqlite3
BIN
db.sqlite3
Binary file not shown.
|
|
@ -1,6 +1,9 @@
|
|||
from django.contrib import admin
|
||||
from web.models import MailingList
|
||||
from web.models import MailingList, SiteSection, SiteSectionAdmin, LinkTree, LinkTreeAdmin, Show, ShowAdmin
|
||||
|
||||
admin.site.register(MailingList)
|
||||
admin.site.register(SiteSection, SiteSectionAdmin)
|
||||
admin.site.register(LinkTree, LinkTreeAdmin)
|
||||
admin.site.register(Show, ShowAdmin)
|
||||
|
||||
# Register your models here.
|
||||
# Register active models here.
|
||||
|
|
|
|||
58
web/migrations/0002_linktree_show_sitesection.py
Normal file
58
web/migrations/0002_linktree_show_sitesection.py
Normal file
|
|
@ -0,0 +1,58 @@
|
|||
# Generated by Django 6.0.1 on 2026-03-31 01:53
|
||||
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('web', '0001_initial'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.CreateModel(
|
||||
name='LinkTree',
|
||||
fields=[
|
||||
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
|
||||
('created_at', models.DateTimeField(auto_now_add=True, null=True)),
|
||||
('updated_at', models.DateTimeField(auto_now=True, null=True)),
|
||||
('active', models.BooleanField(default=True)),
|
||||
('name', models.CharField(max_length=254)),
|
||||
('url', models.TextField()),
|
||||
('order', models.IntegerField()),
|
||||
],
|
||||
options={
|
||||
'abstract': False,
|
||||
},
|
||||
),
|
||||
migrations.CreateModel(
|
||||
name='Show',
|
||||
fields=[
|
||||
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
|
||||
('created_at', models.DateTimeField(auto_now_add=True, null=True)),
|
||||
('updated_at', models.DateTimeField(auto_now=True, null=True)),
|
||||
('active', models.BooleanField(default=True)),
|
||||
('name', models.CharField(max_length=254)),
|
||||
('description', models.TextField()),
|
||||
('location', models.CharField(max_length=254)),
|
||||
('date', models.DateTimeField(auto_now_add=True, null=True)),
|
||||
],
|
||||
options={
|
||||
'abstract': False,
|
||||
},
|
||||
),
|
||||
migrations.CreateModel(
|
||||
name='SiteSection',
|
||||
fields=[
|
||||
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
|
||||
('created_at', models.DateTimeField(auto_now_add=True, null=True)),
|
||||
('updated_at', models.DateTimeField(auto_now=True, null=True)),
|
||||
('active', models.BooleanField(default=True)),
|
||||
('section', models.CharField(max_length=254)),
|
||||
('content', models.TextField()),
|
||||
],
|
||||
options={
|
||||
'abstract': False,
|
||||
},
|
||||
),
|
||||
]
|
||||
18
web/migrations/0003_linktree_color.py
Normal file
18
web/migrations/0003_linktree_color.py
Normal file
|
|
@ -0,0 +1,18 @@
|
|||
# Generated by Django 6.0.1 on 2026-03-31 02:07
|
||||
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('web', '0002_linktree_show_sitesection'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AddField(
|
||||
model_name='linktree',
|
||||
name='color',
|
||||
field=models.CharField(choices=[('WHITE', 'btn-light'), ('GREEN', 'btn-success'), ('RED', 'btn-danger')], default='WHITE', max_length=254),
|
||||
),
|
||||
]
|
||||
18
web/migrations/0004_alter_linktree_color.py
Normal file
18
web/migrations/0004_alter_linktree_color.py
Normal file
|
|
@ -0,0 +1,18 @@
|
|||
# Generated by Django 6.0.1 on 2026-03-31 02:08
|
||||
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('web', '0003_linktree_color'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AlterField(
|
||||
model_name='linktree',
|
||||
name='color',
|
||||
field=models.CharField(choices=[('btn-light', 'WHITE'), ('btn-success', 'GREEN'), ('btn-danger', 'RED')], default='WHITE', max_length=254),
|
||||
),
|
||||
]
|
||||
|
|
@ -1,4 +1,5 @@
|
|||
from django.db import models
|
||||
from django.contrib import admin
|
||||
|
||||
|
||||
class BaseModel(models.Model):
|
||||
|
|
@ -12,3 +13,56 @@ class BaseModel(models.Model):
|
|||
|
||||
class MailingList(BaseModel):
|
||||
email = models.EmailField(max_length=254, blank=False, null=False)
|
||||
|
||||
|
||||
class SiteSection(BaseModel):
|
||||
section = models.CharField(max_length=254, blank=False, null=False)
|
||||
content = models.TextField()
|
||||
|
||||
|
||||
class SiteSectionAdmin(admin.ModelAdmin):
|
||||
search_fields = (
|
||||
)
|
||||
|
||||
list_display = (
|
||||
'section',
|
||||
)
|
||||
|
||||
|
||||
class LinkTree(BaseModel):
|
||||
name = models.CharField(max_length=254, blank=False, null=False)
|
||||
url = models.TextField()
|
||||
order = models.IntegerField()
|
||||
color = models.CharField(max_length=254, choices=[("btn-light", "WHITE"), ("btn-success", "GREEN"), ("btn-danger", "RED")], default="WHITE")
|
||||
|
||||
|
||||
class LinkTreeAdmin(admin.ModelAdmin):
|
||||
search_fields=(
|
||||
)
|
||||
|
||||
list_display=(
|
||||
'name',
|
||||
'url',
|
||||
'order',
|
||||
'color'
|
||||
)
|
||||
|
||||
|
||||
class Show(BaseModel):
|
||||
name=models.CharField(max_length=254, blank=False, null=False)
|
||||
description=models.TextField()
|
||||
location=models.CharField(max_length=254, blank=False, null=False)
|
||||
date=models.DateTimeField(blank=True, null=True, auto_now_add=True)
|
||||
|
||||
|
||||
class ShowAdmin(admin.ModelAdmin):
|
||||
search_fields=(
|
||||
)
|
||||
|
||||
list_display=(
|
||||
'name',
|
||||
'description',
|
||||
'location',
|
||||
'date',
|
||||
'active'
|
||||
)
|
||||
|
|
|
|||
|
|
@ -37,52 +37,7 @@
|
|||
</div>
|
||||
|
||||
<div class="col-lg-6" style="padding:30px; background-color: #54b879;">
|
||||
<h1>About Us:</h1>
|
||||
<p>
|
||||
<b>SHRINKIN-MINKIN</b> thrives on the fringes of genre, violating the confines of classification.
|
||||
Founded in 2022 by singer/guitarists Dominic DiTaranto and Michael Heinfling;
|
||||
SHRINKIN-MINKIN blends Rock, Funk, Jazz, Punk, infused with creative improvisation and FX landscape.
|
||||
The NJ based 5-piece is <i>tight</i>. Technical, Playful, and dripping with thirst-quenching satire.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
Their musical multiplicity allows SHRINKIN-MINKIN to fit into any lineup.
|
||||
Their songs range from the Funk, Rock, Hip Hop, Gospel fusion of "GLOP";
|
||||
to Post-Punk anthems like "Industry Rock" and the comical love-lament of "Butter Queen".
|
||||
Songs that are guaranteed to get asses convulsing in rhythmic fervor.
|
||||
More discerning listeners can relax and watch the band trade solos on "Down Polypore Wood".
|
||||
Add in Alternative ballads, Blues tracks, and even a Psychedelic-Waltz and you will begin to scratch
|
||||
the surface of what SHRINKIN-MINKIN has to offer.
|
||||
<br><br>
|
||||
<a href="#book">Book Us</a> now to support or headline!
|
||||
</p>
|
||||
<p>
|
||||
<b>Members:</b>
|
||||
<br>Dominic DiTaranto - Guitar/Vocals/Synth
|
||||
<br>Michael Heinfling - Guitar/Vocals
|
||||
<br>Charlie Misch - Keyboard/Synth
|
||||
<br>B.S. Ashford - Bass
|
||||
<br>Recon Paul - Drums
|
||||
</p>
|
||||
|
||||
|
||||
<p>
|
||||
<b>Recommended if you like:</b>
|
||||
Frank Zappa,
|
||||
King Crimson,
|
||||
Talking Heads,
|
||||
David Bowie,
|
||||
Mahavishnu Orchestra,
|
||||
Phish,
|
||||
Miles Davis,
|
||||
The Stooges,
|
||||
Funkadelic,
|
||||
John Coltrane,
|
||||
The Stranglers,
|
||||
The Damned,
|
||||
Weather Report,
|
||||
The Cars
|
||||
</p>
|
||||
{{synopsis|safe}}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
|
|
|||
|
|
@ -10,31 +10,14 @@
|
|||
height: 42px"
|
||||
src="https://bandcamp.com/EmbeddedPlayer/album=4037494074/size=small/bgcol=ffffff/linkcol=0687f5/transparent=true/"
|
||||
seamless><a href="https://shrinkin-minkin.bandcamp.com/album/tyrannizing-harmonics">Tyrannizing Harmonics by shrinkin-minkin</a></iframe>
|
||||
<a target="_blank" href="{% url 'album' %}">
|
||||
<button type="button" class="btn btn-success link">Listen To Our Album!</button>
|
||||
<br>
|
||||
</a>
|
||||
<a target="_blank" href="https://www.instagram.com/shrinkinminkin/">
|
||||
<button type="button" class="btn btn-light link">Instagram</button>
|
||||
<br>
|
||||
</a>
|
||||
<a target="_blank" href="https://shrinkin-minkin.bandcamp.com/">
|
||||
<button type="button" class="btn btn-light link">Bandcamp</button>
|
||||
<br>
|
||||
</a>
|
||||
<a target="_blank"
|
||||
href="https://www.youtube.com/channel/UCCmRKeoqtHC9G1X-yvuUG7A">
|
||||
<button type="button" class="btn btn-light link">YouTube</button>
|
||||
<br>
|
||||
</a>
|
||||
<a target="_blank" href="https://www.shrinkinminkin.com/">
|
||||
<button type="button" class="btn btn-light link">For Promoters And Venues</button>
|
||||
<br>
|
||||
</a>
|
||||
<a target="_blank" href="https://www.bonfire.com/store/shrinkin-minkin/">
|
||||
<button type="button" class="btn btn-danger link">Merch</button>
|
||||
|
||||
{% for link in links %}
|
||||
|
||||
<a target="_blank" href="{{ link.url }}">
|
||||
<button type="button" class="btn {{ link.color }} link">{{ link.name }}</button>
|
||||
<br>
|
||||
</a>
|
||||
{% endfor %}
|
||||
<br>
|
||||
<br>
|
||||
</center>
|
||||
|
|
|
|||
17
web/views.py
17
web/views.py
|
|
@ -1,11 +1,16 @@
|
|||
from django.contrib import messages
|
||||
from django.shortcuts import render, redirect
|
||||
from web.models import MailingList
|
||||
|
||||
from web.models import MailingList, SiteSection, LinkTree
|
||||
|
||||
|
||||
def index(request):
|
||||
return render(request, 'index.html')
|
||||
synopsis = SiteSection.objects.filter(section="Synopsis").first()
|
||||
|
||||
context = {
|
||||
"synopsis": synopsis.content
|
||||
}
|
||||
|
||||
return render(request, 'index.html', context=context)
|
||||
|
||||
|
||||
def album(request):
|
||||
|
|
@ -13,7 +18,11 @@ def album(request):
|
|||
|
||||
|
||||
def socials(request):
|
||||
return render(request, 'socials.html')
|
||||
links = LinkTree.objects.filter(active=True).order_by("order").all()
|
||||
context = {
|
||||
"links": links
|
||||
}
|
||||
return render(request, 'socials.html', context=context)
|
||||
|
||||
|
||||
def mailing_list(request):
|
||||
|
|
|
|||
Loading…
Reference in a new issue