diff --git a/db.sqlite3 b/db.sqlite3 index eb47e4a..049e360 100644 Binary files a/db.sqlite3 and b/db.sqlite3 differ diff --git a/web/admin.py b/web/admin.py index fc43d14..7277d1f 100644 --- a/web/admin.py +++ b/web/admin.py @@ -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. diff --git a/web/migrations/0002_linktree_show_sitesection.py b/web/migrations/0002_linktree_show_sitesection.py new file mode 100644 index 0000000..b75b4d6 --- /dev/null +++ b/web/migrations/0002_linktree_show_sitesection.py @@ -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, + }, + ), + ] diff --git a/web/migrations/0003_linktree_color.py b/web/migrations/0003_linktree_color.py new file mode 100644 index 0000000..5fd84d9 --- /dev/null +++ b/web/migrations/0003_linktree_color.py @@ -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), + ), + ] diff --git a/web/migrations/0004_alter_linktree_color.py b/web/migrations/0004_alter_linktree_color.py new file mode 100644 index 0000000..5b22dca --- /dev/null +++ b/web/migrations/0004_alter_linktree_color.py @@ -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), + ), + ] diff --git a/web/models.py b/web/models.py index 82a3ef2..7dba61a 100644 --- a/web/models.py +++ b/web/models.py @@ -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' + ) diff --git a/web/templates/index.html b/web/templates/index.html index 990bdc5..f290cc8 100644 --- a/web/templates/index.html +++ b/web/templates/index.html @@ -37,52 +37,7 @@
-

About Us:

-

- SHRINKIN-MINKIN 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 tight. Technical, Playful, and dripping with thirst-quenching satire. -

- -

- 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. -

- Book Us now to support or headline! -

-

- Members: -
Dominic DiTaranto - Guitar/Vocals/Synth -
Michael Heinfling - Guitar/Vocals -
Charlie Misch - Keyboard/Synth -
B.S. Ashford - Bass -
Recon Paul - Drums -

- - -

- Recommended if you like: - 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 -

+ {{synopsis|safe}}
diff --git a/web/templates/socials.html b/web/templates/socials.html index 8d6b82f..7c1cf4b 100644 --- a/web/templates/socials.html +++ b/web/templates/socials.html @@ -10,31 +10,14 @@ height: 42px" src="https://bandcamp.com/EmbeddedPlayer/album=4037494074/size=small/bgcol=ffffff/linkcol=0687f5/transparent=true/" seamless>Tyrannizing Harmonics by shrinkin-minkin - - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
+ + {% for link in links %} + + + +
+
+ {% endfor %}

diff --git a/web/views.py b/web/views.py index f26f335..2972ba3 100644 --- a/web/views.py +++ b/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):