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 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(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.db import models
|
||||||
|
from django.contrib import admin
|
||||||
|
|
||||||
|
|
||||||
class BaseModel(models.Model):
|
class BaseModel(models.Model):
|
||||||
|
|
@ -12,3 +13,56 @@ class BaseModel(models.Model):
|
||||||
|
|
||||||
class MailingList(BaseModel):
|
class MailingList(BaseModel):
|
||||||
email = models.EmailField(max_length=254, blank=False, null=False)
|
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>
|
||||||
|
|
||||||
<div class="col-lg-6" style="padding:30px; background-color: #54b879;">
|
<div class="col-lg-6" style="padding:30px; background-color: #54b879;">
|
||||||
<h1>About Us:</h1>
|
{{synopsis|safe}}
|
||||||
<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>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -10,31 +10,14 @@
|
||||||
height: 42px"
|
height: 42px"
|
||||||
src="https://bandcamp.com/EmbeddedPlayer/album=4037494074/size=small/bgcol=ffffff/linkcol=0687f5/transparent=true/"
|
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>
|
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>
|
{% for link in links %}
|
||||||
<br>
|
|
||||||
</a>
|
<a target="_blank" href="{{ link.url }}">
|
||||||
<a target="_blank" href="https://www.instagram.com/shrinkinminkin/">
|
<button type="button" class="btn {{ link.color }} link">{{ link.name }}</button>
|
||||||
<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>
|
|
||||||
<br>
|
<br>
|
||||||
</a>
|
</a>
|
||||||
|
{% endfor %}
|
||||||
<br>
|
<br>
|
||||||
<br>
|
<br>
|
||||||
</center>
|
</center>
|
||||||
|
|
|
||||||
17
web/views.py
17
web/views.py
|
|
@ -1,11 +1,16 @@
|
||||||
from django.contrib import messages
|
from django.contrib import messages
|
||||||
from django.shortcuts import render, redirect
|
from django.shortcuts import render, redirect
|
||||||
from web.models import MailingList
|
from web.models import MailingList, SiteSection, LinkTree
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
def index(request):
|
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):
|
def album(request):
|
||||||
|
|
@ -13,7 +18,11 @@ def album(request):
|
||||||
|
|
||||||
|
|
||||||
def socials(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):
|
def mailing_list(request):
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue