picata 0.0.1__py3-none-any.whl → 0.0.2__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- README.md +7 -57
- manage.py +1 -1
- picata/__init__.py +1 -1
- picata/apps.py +6 -6
- picata/blocks.py +3 -2
- picata/helpers/wagtail.py +1 -1
- picata/middleware.py +1 -1
- picata/migrations/0001_initial.py +77 -211
- picata/models.py +6 -5
- picata/settings/base.py +15 -15
- picata/settings/dev.py +4 -2
- picata/templates/picata/base.html +3 -3
- picata/templates/picata/previews/theme_gallery.html +1 -1
- picata/templatetags/absolute_static.py +1 -1
- picata/templatetags/menu_tags.py +26 -12
- picata/transformers.py +1 -1
- picata/typing/__init__.py +1 -1
- picata/typing/wagtail.py +1 -1
- picata/urls.py +2 -2
- picata/views.py +3 -2
- picata/wagtail_hooks.py +1 -1
- picata/wsgi.py +2 -2
- picata-0.0.2.dist-info/METADATA +37 -0
- picata-0.0.2.dist-info/RECORD +73 -0
- picata/migrations/0002_alter_article_content_alter_basicpage_content.py +0 -112
- picata/migrations/0003_alter_article_content_alter_basicpage_content.py +0 -104
- picata/migrations/0004_alter_article_content_alter_basicpage_content.py +0 -105
- picata/migrations/0005_socialsettings.py +0 -48
- picata/migrations/0006_alter_article_content.py +0 -71
- picata/migrations/0007_splitviewpage.py +0 -69
- picata/migrations/0008_alter_splitviewpage_content.py +0 -96
- picata/migrations/0009_alter_splitviewpage_content.py +0 -111
- picata/migrations/0010_alter_splitviewpage_content.py +0 -105
- picata/migrations/0011_alter_splitviewpage_options_and_more.py +0 -113
- picata/migrations/0012_alter_splitviewpage_content.py +0 -109
- picata/migrations/0013_alter_article_content.py +0 -43
- picata/migrations/0014_alter_article_content_alter_article_summary.py +0 -24
- picata/migrations/0015_alter_article_options_article_tagline_and_more.py +0 -28
- picata/migrations/0016_alter_article_options_alter_articletag_options_and_more.py +0 -33
- picata/migrations/0017_articletagrelation_alter_article_tags_and_more.py +0 -35
- picata/migrations/0018_rename_articletag_pagetag_and_more.py +0 -21
- picata/migrations/0019_rename_name_plural_articletype__name_plural.py +0 -18
- picata/migrations/0020_rename__name_plural_articletype__pluralised_name.py +0 -18
- picata/migrations/0021_rename_article_type_article_page_type.py +0 -18
- picata/migrations/0022_homepage.py +0 -28
- picata-0.0.1.dist-info/METADATA +0 -87
- picata-0.0.1.dist-info/RECORD +0 -94
- {picata-0.0.1.dist-info → picata-0.0.2.dist-info}/WHEEL +0 -0
- {picata-0.0.1.dist-info → picata-0.0.2.dist-info}/licenses/LICENSE.md +0 -0
|
@@ -1,109 +0,0 @@
|
|
|
1
|
-
# Generated by Django 5.1.4 on 2025-01-04 02:55
|
|
2
|
-
|
|
3
|
-
import wagtail.fields
|
|
4
|
-
from django.db import migrations
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
class Migration(migrations.Migration):
|
|
8
|
-
dependencies = [
|
|
9
|
-
("hpk", "0011_alter_splitviewpage_options_and_more"),
|
|
10
|
-
]
|
|
11
|
-
|
|
12
|
-
operations = [
|
|
13
|
-
migrations.AlterField(
|
|
14
|
-
model_name="splitviewpage",
|
|
15
|
-
name="content",
|
|
16
|
-
field=wagtail.fields.StreamField(
|
|
17
|
-
[("rich_text", 0), ("code", 3), ("image", 4), ("icon_link_lists", 14)],
|
|
18
|
-
blank=True,
|
|
19
|
-
block_lookup={
|
|
20
|
-
0: ("wagtail.blocks.RichTextBlock", (), {}),
|
|
21
|
-
1: ("wagtail.blocks.TextBlock", (), {"help_text": None, "required": True}),
|
|
22
|
-
2: (
|
|
23
|
-
"wagtail.blocks.ChoiceBlock",
|
|
24
|
-
[],
|
|
25
|
-
{
|
|
26
|
-
"choices": [
|
|
27
|
-
("python", "Python"),
|
|
28
|
-
("javascript", "JavaScript"),
|
|
29
|
-
("html", "HTML"),
|
|
30
|
-
("css", "CSS"),
|
|
31
|
-
("bash", "Bash"),
|
|
32
|
-
("plaintext", "Plain Text"),
|
|
33
|
-
],
|
|
34
|
-
"required": False,
|
|
35
|
-
},
|
|
36
|
-
),
|
|
37
|
-
3: ("wagtail.blocks.StructBlock", [[("code", 1), ("language", 2)]], {}),
|
|
38
|
-
4: ("hpk.blocks.WrappedImageChooserBlock", (), {}),
|
|
39
|
-
5: (
|
|
40
|
-
"wagtail.blocks.CharBlock",
|
|
41
|
-
(),
|
|
42
|
-
{
|
|
43
|
-
"help_text": "Optional heading for this list (e.g., Social Links).",
|
|
44
|
-
"required": False,
|
|
45
|
-
},
|
|
46
|
-
),
|
|
47
|
-
6: (
|
|
48
|
-
"wagtail.blocks.IntegerBlock",
|
|
49
|
-
(),
|
|
50
|
-
{
|
|
51
|
-
"default": 2,
|
|
52
|
-
"help_text": "Heading level for the list (1-6).",
|
|
53
|
-
"max_value": 6,
|
|
54
|
-
"min_value": 1,
|
|
55
|
-
"required": False,
|
|
56
|
-
},
|
|
57
|
-
),
|
|
58
|
-
7: (
|
|
59
|
-
"hpk.blocks.HREFBlock",
|
|
60
|
-
(),
|
|
61
|
-
{
|
|
62
|
-
"help_text": "An optional link field",
|
|
63
|
-
"max_length": 255,
|
|
64
|
-
"required": False,
|
|
65
|
-
},
|
|
66
|
-
),
|
|
67
|
-
8: (
|
|
68
|
-
"wagtail.blocks.CharBlock",
|
|
69
|
-
(),
|
|
70
|
-
{
|
|
71
|
-
"help_text": "The title for the list item.",
|
|
72
|
-
"max_length": 50,
|
|
73
|
-
"required": True,
|
|
74
|
-
},
|
|
75
|
-
),
|
|
76
|
-
9: (
|
|
77
|
-
"wagtail.blocks.CharBlock",
|
|
78
|
-
(),
|
|
79
|
-
{
|
|
80
|
-
"help_text": "Id of the icon in the static/icons.svg file.",
|
|
81
|
-
"max_length": 255,
|
|
82
|
-
"required": False,
|
|
83
|
-
},
|
|
84
|
-
),
|
|
85
|
-
10: (
|
|
86
|
-
"wagtail.blocks.StructBlock",
|
|
87
|
-
[[("href", 7), ("label", 8), ("icon", 9)]],
|
|
88
|
-
{},
|
|
89
|
-
),
|
|
90
|
-
11: ("wagtail.blocks.ListBlock", (10,), {"help_text": "The list of items."}),
|
|
91
|
-
12: (
|
|
92
|
-
"wagtail.blocks.StructBlock",
|
|
93
|
-
[[("heading", 5), ("heading_level", 6), ("items", 11)]],
|
|
94
|
-
{},
|
|
95
|
-
),
|
|
96
|
-
13: (
|
|
97
|
-
"wagtail.blocks.StreamBlock",
|
|
98
|
-
[[("link_list", 12)]],
|
|
99
|
-
{
|
|
100
|
-
"help_text": "Add one or more heading-and-link-list blocks.",
|
|
101
|
-
"required": False,
|
|
102
|
-
},
|
|
103
|
-
),
|
|
104
|
-
14: ("wagtail.blocks.StructBlock", [[("lists", 13)]], {}),
|
|
105
|
-
},
|
|
106
|
-
help_text="Main content for the split-view page.",
|
|
107
|
-
),
|
|
108
|
-
),
|
|
109
|
-
]
|
|
@@ -1,43 +0,0 @@
|
|
|
1
|
-
# Generated by Django 5.1.4 on 2025-01-08 07:12
|
|
2
|
-
|
|
3
|
-
import wagtail.fields
|
|
4
|
-
from django.db import migrations
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
class Migration(migrations.Migration):
|
|
8
|
-
dependencies = [
|
|
9
|
-
("hpk", "0012_alter_splitviewpage_content"),
|
|
10
|
-
]
|
|
11
|
-
|
|
12
|
-
operations = [
|
|
13
|
-
migrations.AlterField(
|
|
14
|
-
model_name="article",
|
|
15
|
-
name="content",
|
|
16
|
-
field=wagtail.fields.StreamField(
|
|
17
|
-
[("section", 0), ("code", 3), ("image", 4)],
|
|
18
|
-
blank=True,
|
|
19
|
-
block_lookup={
|
|
20
|
-
0: ("wagtail.blocks.RichTextBlock", (), {}),
|
|
21
|
-
1: ("wagtail.blocks.TextBlock", (), {"help_text": None, "required": True}),
|
|
22
|
-
2: (
|
|
23
|
-
"wagtail.blocks.ChoiceBlock",
|
|
24
|
-
[],
|
|
25
|
-
{
|
|
26
|
-
"choices": [
|
|
27
|
-
("python", "Python"),
|
|
28
|
-
("javascript", "JavaScript"),
|
|
29
|
-
("html", "HTML"),
|
|
30
|
-
("css", "CSS"),
|
|
31
|
-
("bash", "Bash"),
|
|
32
|
-
("plaintext", "Plain Text"),
|
|
33
|
-
],
|
|
34
|
-
"required": False,
|
|
35
|
-
},
|
|
36
|
-
),
|
|
37
|
-
3: ("wagtail.blocks.StructBlock", [[("code", 1), ("language", 2)]], {}),
|
|
38
|
-
4: ("wagtail.images.blocks.ImageChooserBlock", (), {}),
|
|
39
|
-
},
|
|
40
|
-
help_text="Main content for the article.",
|
|
41
|
-
),
|
|
42
|
-
),
|
|
43
|
-
]
|
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
# Generated by Django 5.1.4 on 2025-01-08 23:41
|
|
2
|
-
|
|
3
|
-
import wagtail.fields
|
|
4
|
-
from django.db import migrations
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
class Migration(migrations.Migration):
|
|
8
|
-
|
|
9
|
-
dependencies = [
|
|
10
|
-
('hpk', '0013_alter_article_content'),
|
|
11
|
-
]
|
|
12
|
-
|
|
13
|
-
operations = [
|
|
14
|
-
migrations.AlterField(
|
|
15
|
-
model_name='article',
|
|
16
|
-
name='content',
|
|
17
|
-
field=wagtail.fields.StreamField([('rich_text', 0), ('code', 3), ('image', 4)], blank=True, block_lookup={0: ('wagtail.blocks.RichTextBlock', (), {}), 1: ('wagtail.blocks.TextBlock', (), {'help_text': None, 'required': True}), 2: ('wagtail.blocks.ChoiceBlock', [], {'choices': [('python', 'Python'), ('javascript', 'JavaScript'), ('html', 'HTML'), ('css', 'CSS'), ('bash', 'Bash'), ('plaintext', 'Plain Text')], 'required': False}), 3: ('wagtail.blocks.StructBlock', [[('code', 1), ('language', 2)]], {}), 4: ('wagtail.images.blocks.ImageChooserBlock', (), {})}, help_text='Main content for the article.'),
|
|
18
|
-
),
|
|
19
|
-
migrations.AlterField(
|
|
20
|
-
model_name='article',
|
|
21
|
-
name='summary',
|
|
22
|
-
field=wagtail.fields.RichTextField(blank=True, help_text='A summary, to be displayed in previews.'),
|
|
23
|
-
),
|
|
24
|
-
]
|
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
# Generated by Django 5.1.4 on 2025-01-08 23:52
|
|
2
|
-
|
|
3
|
-
import wagtail.fields
|
|
4
|
-
from django.db import migrations, models
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
class Migration(migrations.Migration):
|
|
8
|
-
|
|
9
|
-
dependencies = [
|
|
10
|
-
('hpk', '0014_alter_article_content_alter_article_summary'),
|
|
11
|
-
]
|
|
12
|
-
|
|
13
|
-
operations = [
|
|
14
|
-
migrations.AlterModelOptions(
|
|
15
|
-
name='article',
|
|
16
|
-
options={'verbose_name': 'article', 'verbose_name_plural': 'articles'},
|
|
17
|
-
),
|
|
18
|
-
migrations.AddField(
|
|
19
|
-
model_name='article',
|
|
20
|
-
name='tagline',
|
|
21
|
-
field=models.CharField(blank=True, help_text='A short tagline for the article.'),
|
|
22
|
-
),
|
|
23
|
-
migrations.AlterField(
|
|
24
|
-
model_name='article',
|
|
25
|
-
name='summary',
|
|
26
|
-
field=wagtail.fields.RichTextField(blank=True, help_text='A summary to be displayed in previews.'),
|
|
27
|
-
),
|
|
28
|
-
]
|
|
@@ -1,33 +0,0 @@
|
|
|
1
|
-
# Generated by Django 5.1.4 on 2025-01-09 00:27
|
|
2
|
-
|
|
3
|
-
from django.db import migrations
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
class Migration(migrations.Migration):
|
|
7
|
-
|
|
8
|
-
dependencies = [
|
|
9
|
-
('hpk', '0015_alter_article_options_article_tagline_and_more'),
|
|
10
|
-
]
|
|
11
|
-
|
|
12
|
-
operations = [
|
|
13
|
-
migrations.AlterModelOptions(
|
|
14
|
-
name='article',
|
|
15
|
-
options={},
|
|
16
|
-
),
|
|
17
|
-
migrations.AlterModelOptions(
|
|
18
|
-
name='articletag',
|
|
19
|
-
options={},
|
|
20
|
-
),
|
|
21
|
-
migrations.AlterModelOptions(
|
|
22
|
-
name='basicpage',
|
|
23
|
-
options={},
|
|
24
|
-
),
|
|
25
|
-
migrations.AlterModelOptions(
|
|
26
|
-
name='postgrouppage',
|
|
27
|
-
options={'verbose_name': 'post listing', 'verbose_name_plural': 'post listings'},
|
|
28
|
-
),
|
|
29
|
-
migrations.AlterModelOptions(
|
|
30
|
-
name='splitviewpage',
|
|
31
|
-
options={'verbose_name': 'split-view page', 'verbose_name_plural': 'split-view pages'},
|
|
32
|
-
),
|
|
33
|
-
]
|
|
@@ -1,35 +0,0 @@
|
|
|
1
|
-
# Generated by Django 5.1.4 on 2025-01-10 02:28
|
|
2
|
-
|
|
3
|
-
import django.db.models.deletion
|
|
4
|
-
import modelcluster.contrib.taggit
|
|
5
|
-
import modelcluster.fields
|
|
6
|
-
from django.db import migrations, models
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
class Migration(migrations.Migration):
|
|
10
|
-
|
|
11
|
-
dependencies = [
|
|
12
|
-
('hpk', '0016_alter_article_options_alter_articletag_options_and_more'),
|
|
13
|
-
]
|
|
14
|
-
|
|
15
|
-
operations = [
|
|
16
|
-
migrations.CreateModel(
|
|
17
|
-
name='ArticleTagRelation',
|
|
18
|
-
fields=[
|
|
19
|
-
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
|
|
20
|
-
('content_object', modelcluster.fields.ParentalKey(on_delete=django.db.models.deletion.CASCADE, related_name='tagged_items', to='hpk.article')),
|
|
21
|
-
('tag', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='tagged_items', to='hpk.articletag')),
|
|
22
|
-
],
|
|
23
|
-
options={
|
|
24
|
-
'abstract': False,
|
|
25
|
-
},
|
|
26
|
-
),
|
|
27
|
-
migrations.AlterField(
|
|
28
|
-
model_name='article',
|
|
29
|
-
name='tags',
|
|
30
|
-
field=modelcluster.contrib.taggit.ClusterTaggableManager(blank=True, help_text='Tags for the article.', through='hpk.ArticleTagRelation', to='hpk.ArticleTag', verbose_name='Tags'),
|
|
31
|
-
),
|
|
32
|
-
migrations.DeleteModel(
|
|
33
|
-
name='ArticleTagItem',
|
|
34
|
-
),
|
|
35
|
-
]
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
# Generated by Django 5.1.4 on 2025-01-14 01:13
|
|
2
|
-
|
|
3
|
-
from django.db import migrations
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
class Migration(migrations.Migration):
|
|
7
|
-
|
|
8
|
-
dependencies = [
|
|
9
|
-
('hpk', '0017_articletagrelation_alter_article_tags_and_more'),
|
|
10
|
-
]
|
|
11
|
-
|
|
12
|
-
operations = [
|
|
13
|
-
migrations.RenameModel(
|
|
14
|
-
old_name='ArticleTag',
|
|
15
|
-
new_name='PageTag',
|
|
16
|
-
),
|
|
17
|
-
migrations.RenameModel(
|
|
18
|
-
old_name='ArticleTagRelation',
|
|
19
|
-
new_name='PageTagRelation',
|
|
20
|
-
),
|
|
21
|
-
]
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
# Generated by Django 5.1.5 on 2025-01-18 01:31
|
|
2
|
-
|
|
3
|
-
from django.db import migrations
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
class Migration(migrations.Migration):
|
|
7
|
-
|
|
8
|
-
dependencies = [
|
|
9
|
-
('hpk', '0018_rename_articletag_pagetag_and_more'),
|
|
10
|
-
]
|
|
11
|
-
|
|
12
|
-
operations = [
|
|
13
|
-
migrations.RenameField(
|
|
14
|
-
model_name='articletype',
|
|
15
|
-
old_name='name_plural',
|
|
16
|
-
new_name='_name_plural',
|
|
17
|
-
),
|
|
18
|
-
]
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
# Generated by Django 5.1.5 on 2025-01-18 01:34
|
|
2
|
-
|
|
3
|
-
from django.db import migrations
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
class Migration(migrations.Migration):
|
|
7
|
-
|
|
8
|
-
dependencies = [
|
|
9
|
-
('hpk', '0019_rename_name_plural_articletype__name_plural'),
|
|
10
|
-
]
|
|
11
|
-
|
|
12
|
-
operations = [
|
|
13
|
-
migrations.RenameField(
|
|
14
|
-
model_name='articletype',
|
|
15
|
-
old_name='_name_plural',
|
|
16
|
-
new_name='_Pluralised_name',
|
|
17
|
-
),
|
|
18
|
-
]
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
# Generated by Django 5.1.5 on 2025-01-18 03:04
|
|
2
|
-
|
|
3
|
-
from django.db import migrations
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
class Migration(migrations.Migration):
|
|
7
|
-
|
|
8
|
-
dependencies = [
|
|
9
|
-
('hpk', '0020_rename__name_plural_articletype__pluralised_name'),
|
|
10
|
-
]
|
|
11
|
-
|
|
12
|
-
operations = [
|
|
13
|
-
migrations.RenameField(
|
|
14
|
-
model_name='article',
|
|
15
|
-
old_name='article_type',
|
|
16
|
-
new_name='page_type',
|
|
17
|
-
),
|
|
18
|
-
]
|
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
# Generated by Django 5.1.5 on 2025-01-20 04:02
|
|
2
|
-
|
|
3
|
-
import django.db.models.deletion
|
|
4
|
-
import wagtail.fields
|
|
5
|
-
from django.db import migrations, models
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
class Migration(migrations.Migration):
|
|
9
|
-
|
|
10
|
-
dependencies = [
|
|
11
|
-
('hpk', '0021_rename_article_type_article_page_type'),
|
|
12
|
-
('wagtailcore', '0094_alter_page_locale'),
|
|
13
|
-
]
|
|
14
|
-
|
|
15
|
-
operations = [
|
|
16
|
-
migrations.CreateModel(
|
|
17
|
-
name='HomePage',
|
|
18
|
-
fields=[
|
|
19
|
-
('page_ptr', models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, serialize=False, to='wagtailcore.page')),
|
|
20
|
-
('top_content', wagtail.fields.StreamField([('rich_text', 0), ('image', 1), ('icon_link_lists', 11)], blank=True, block_lookup={0: ('wagtail.blocks.RichTextBlock', (), {}), 1: ('hpk.blocks.WrappedImageChooserBlock', (), {}), 2: ('wagtail.blocks.CharBlock', (), {'help_text': 'Optional heading for this list (e.g., Social Links).', 'required': False}), 3: ('wagtail.blocks.IntegerBlock', (), {'default': 2, 'help_text': 'Heading level for the list (1-6).', 'max_value': 6, 'min_value': 1, 'required': False}), 4: ('hpk.blocks.HREFBlock', (), {'help_text': 'An optional link field', 'max_length': 255, 'required': False}), 5: ('wagtail.blocks.CharBlock', (), {'help_text': 'The title for the list item.', 'max_length': 50, 'required': True}), 6: ('wagtail.blocks.CharBlock', (), {'help_text': 'Id of the icon in the static/icons.svg file.', 'max_length': 255, 'required': False}), 7: ('wagtail.blocks.StructBlock', [[('href', 4), ('label', 5), ('icon', 6)]], {}), 8: ('wagtail.blocks.ListBlock', (7,), {'help_text': 'The list of items.'}), 9: ('wagtail.blocks.StructBlock', [[('heading', 2), ('heading_level', 3), ('items', 8)]], {}), 10: ('wagtail.blocks.StreamBlock', [[('link_list', 9)]], {'help_text': 'Add one or more heading-and-link-list blocks.', 'required': False}), 11: ('wagtail.blocks.StructBlock', [[('lists', 10)]], {})}, help_text="Content stream above 'Recent posts'")),
|
|
21
|
-
('bottom_content', wagtail.fields.StreamField([('rich_text', 0), ('image', 1), ('icon_link_lists', 11)], blank=True, block_lookup={0: ('wagtail.blocks.RichTextBlock', (), {}), 1: ('hpk.blocks.WrappedImageChooserBlock', (), {}), 2: ('wagtail.blocks.CharBlock', (), {'help_text': 'Optional heading for this list (e.g., Social Links).', 'required': False}), 3: ('wagtail.blocks.IntegerBlock', (), {'default': 2, 'help_text': 'Heading level for the list (1-6).', 'max_value': 6, 'min_value': 1, 'required': False}), 4: ('hpk.blocks.HREFBlock', (), {'help_text': 'An optional link field', 'max_length': 255, 'required': False}), 5: ('wagtail.blocks.CharBlock', (), {'help_text': 'The title for the list item.', 'max_length': 50, 'required': True}), 6: ('wagtail.blocks.CharBlock', (), {'help_text': 'Id of the icon in the static/icons.svg file.', 'max_length': 255, 'required': False}), 7: ('wagtail.blocks.StructBlock', [[('href', 4), ('label', 5), ('icon', 6)]], {}), 8: ('wagtail.blocks.ListBlock', (7,), {'help_text': 'The list of items.'}), 9: ('wagtail.blocks.StructBlock', [[('heading', 2), ('heading_level', 3), ('items', 8)]], {}), 10: ('wagtail.blocks.StreamBlock', [[('link_list', 9)]], {'help_text': 'Add one or more heading-and-link-list blocks.', 'required': False}), 11: ('wagtail.blocks.StructBlock', [[('lists', 10)]], {})}, help_text="Content stream rendered under 'Recent posts'")),
|
|
22
|
-
],
|
|
23
|
-
options={
|
|
24
|
-
'verbose_name': 'home page',
|
|
25
|
-
},
|
|
26
|
-
bases=('wagtailcore.page',),
|
|
27
|
-
),
|
|
28
|
-
]
|
picata-0.0.1.dist-info/METADATA
DELETED
|
@@ -1,87 +0,0 @@
|
|
|
1
|
-
Metadata-Version: 2.4
|
|
2
|
-
Name: picata
|
|
3
|
-
Version: 0.0.1
|
|
4
|
-
Summary: Ada's Wagtail-based CMS & blog
|
|
5
|
-
Project-URL: Documentation, https://github.com/hipikat/picata#readme
|
|
6
|
-
Project-URL: Issues, https://github.com/hipikat/picata/issues
|
|
7
|
-
Project-URL: Source, https://github.com/hipikat/picata
|
|
8
|
-
Author-email: Ada Wright <ada@hpk.io>
|
|
9
|
-
License-Expression: MIT
|
|
10
|
-
License-File: LICENSE.md
|
|
11
|
-
Keywords: blog,cms,django,wagtail
|
|
12
|
-
Classifier: Development Status :: 2 - Pre-Alpha
|
|
13
|
-
Classifier: Framework :: Django CMS
|
|
14
|
-
Classifier: Framework :: Wagtail :: 6
|
|
15
|
-
Classifier: Programming Language :: Python
|
|
16
|
-
Classifier: Programming Language :: Python :: 3.13
|
|
17
|
-
Classifier: Programming Language :: Python :: Implementation :: CPython
|
|
18
|
-
Requires-Python: >=3.13
|
|
19
|
-
Requires-Dist: gunicorn~=23.0.0
|
|
20
|
-
Requires-Dist: lxml~=5.3.0
|
|
21
|
-
Requires-Dist: psutil~=6.1.0
|
|
22
|
-
Requires-Dist: psycopg~=3.2.3
|
|
23
|
-
Requires-Dist: pygments~=2.18.0
|
|
24
|
-
Requires-Dist: python-slugify~=8.0.4
|
|
25
|
-
Requires-Dist: wagtail-modeladmin~=2.1.0
|
|
26
|
-
Requires-Dist: wagtail~=6.2
|
|
27
|
-
Description-Content-Type: text/markdown
|
|
28
|
-
|
|
29
|
-
# Ada's website
|
|
30
|
-
|
|
31
|
-
Wherein I set up a little website, and learn a bunch of stuff as I go.
|
|
32
|
-
|
|
33
|
-
## What it's made of
|
|
34
|
-
|
|
35
|
-
### Inside the box
|
|
36
|
-
|
|
37
|
-
- [Wagtail](https://wagtail.org) (on [Django](https://www.djangoproject.com)) is the web framework
|
|
38
|
-
<!-- - [Tailwind CSS](https://tailwindcss.com) for styling -->
|
|
39
|
-
|
|
40
|
-
### Holding things together
|
|
41
|
-
|
|
42
|
-
- [UV](https://github.com/astral-sh/uv) for all Python project management
|
|
43
|
-
- [Just](https://just.systems) as a command runner
|
|
44
|
-
- [OpenTofu](https://opentofu.org) for DevOps
|
|
45
|
-
- [Postgres](https://www.postgresql.org) for the database
|
|
46
|
-
- [Docker](https://www.docker.com) for local development
|
|
47
|
-
|
|
48
|
-
## Quickstart
|
|
49
|
-
|
|
50
|
-
### Requirements
|
|
51
|
-
|
|
52
|
-
- On a Mac:
|
|
53
|
-
|
|
54
|
-
```shell
|
|
55
|
-
brew install colima docker
|
|
56
|
-
```
|
|
57
|
-
|
|
58
|
-
### Run a development server
|
|
59
|
-
|
|
60
|
-
```shell
|
|
61
|
-
just tofu workspace select dev
|
|
62
|
-
just tofu apply
|
|
63
|
-
```
|
|
64
|
-
|
|
65
|
-
This will spin up a box on DigitalOcean using the settings defined in
|
|
66
|
-
[infra/variables.tf](infra/variables.tf), and create a DNS A record at
|
|
67
|
-
(workspace).for.(tld), (i.e. dev.for.hpk.io) pointing to the box. The variables
|
|
68
|
-
`do_token` and `ssh_fingerprint` should be defined in
|
|
69
|
-
[infra/secrets.tfvars](infra/secrets.tfvars). Workspace-specific variables are
|
|
70
|
-
defined in infra/envs/(workspace).tfvars; e.g.
|
|
71
|
-
[infra/envs/dev.tfvars](infra/envs/dev.tfvars) defines the 'tags' list for the
|
|
72
|
-
box as `[development]` and sets `cloud_init_config` to point to the
|
|
73
|
-
[cloud-init](https://cloud-init.io) script
|
|
74
|
-
[config/cloud-init-dev.yml](config/cloud-init-dev.yml).
|
|
75
|
-
|
|
76
|
-
The development cloud-init script will:
|
|
77
|
-
|
|
78
|
-
- Install the system packages [`just`](https://just.systems), [`zsh`](https://www.zsh.org),
|
|
79
|
-
[`gunicorn`](https://gunicorn.org), and `tree`
|
|
80
|
-
- Create a 'wagtail' user, with UID 1500
|
|
81
|
-
- Create the 'ada' user, and:
|
|
82
|
-
- install their SSH public keys,
|
|
83
|
-
- install their dotfiles,
|
|
84
|
-
- add them to the 'sudo' and 'wagtail' groups
|
|
85
|
-
- Install [Node](http://nodejs.org) on the system, from the `TF_VAR_NODE_VERSION`
|
|
86
|
-
defined in [.env](.env)
|
|
87
|
-
- Checkout this repository into `/app`, setting the owner and group to 'wagtail'.
|
picata-0.0.1.dist-info/RECORD
DELETED
|
@@ -1,94 +0,0 @@
|
|
|
1
|
-
LICENSE.md,sha256=Bv8sMyZI5NI6DMrfiAvCwIFRLSfJkimLF2KVcUMteKU,1103
|
|
2
|
-
README.md,sha256=tPe8EjMhr2cMwsf-N-gQcTT-IpyE2kIOnwggeJnSPzM,1990
|
|
3
|
-
entrypoint.tsx,sha256=Tk6L2rCk0KrE5kaSL0GFuL3S19yG-BsUgvNAGe32uy8,8820
|
|
4
|
-
manage.py,sha256=v0zbaNjwEksTx39Z9dgoWh8LxZEH1tuCpjLVVmiXBF4,423
|
|
5
|
-
pygments.sass,sha256=zbDYpWda3EoGmjoC3JshZy-_CECNf6WU9abYPF8EHms,6369
|
|
6
|
-
styles.sass,sha256=4Jb-Gxn9AP09pZzwLlCGGfeacCyrncpJAOCYcy-dyB4,8486
|
|
7
|
-
components/HelloWorld.tsx,sha256=Kp7gvhGehfrX1mw0jgr2_D6AueFgqgfMYGkyQgvWekg,180
|
|
8
|
-
picata/__init__.py,sha256=_kL7fTKu02_hXVnOmF1K7llLgpdOeQyAVliL7I5o-Dg,62
|
|
9
|
-
picata/apps.py,sha256=P1qIVWRACiNUA-TY6aIRvt-MyA-3baG82Z_MEpr2fsw,1241
|
|
10
|
-
picata/blocks.py,sha256=iPJc4eQN7_J-KGMMw3Iln31I1-tBluqgaUF-xCxq2Mc,5279
|
|
11
|
-
picata/log_utils.py,sha256=BRdB3PqpFx1XAhIyAzIOyQKiqrjbT3PBmkhH6-wAWJg,1555
|
|
12
|
-
picata/middleware.py,sha256=ycKEVr2GKGmGFQNqFG4ijBmxFuVK11khtiiAiTsbbsk,2064
|
|
13
|
-
picata/models.py,sha256=dra7x1pbRrMpFydgER_j7zPEnrP9Dqqy1n3rDR1Jbgc,15868
|
|
14
|
-
picata/transformers.py,sha256=8VkJJC0Xm8ZMzKxOp07rSnqJA7b-TiL02e_y07Gh5AI,2209
|
|
15
|
-
picata/urls.py,sha256=kTSLS0-f9YaLmhzgg8mW4Oc9W04eXVf_0TZpEnYdnJo,1828
|
|
16
|
-
picata/validators.py,sha256=X4wdIxbCdmuU-gJv45ptTFB7kHR166jkSQBJiTzP3ZU,1517
|
|
17
|
-
picata/views.py,sha256=L_NXtqZogdwP7X1uBIPOB1qnYSNpCCThuI8O7YeS47E,2874
|
|
18
|
-
picata/wagtail_hooks.py,sha256=Y_50IVpV62TEHtg1h8MN0IDkCWAMTVzv0Hd3eiult9M,1497
|
|
19
|
-
picata/wsgi.py,sha256=XdUhwbLt-MKyr9he5PRphYrvKadC8yF0glx1xxQpCgE,392
|
|
20
|
-
picata/helpers/__init__.py,sha256=acN445qKCuRVfInCEyCtx5W1BggloOSrawzdQ-c9m7s,2427
|
|
21
|
-
picata/helpers/wagtail.py,sha256=p_0qw530UcaIBY3AzeTYY6fOUxmVnC9DaP_0_gByrUw,2108
|
|
22
|
-
picata/migrations/0001_initial.py,sha256=q15Mjii63qa397O7eXyM-BSgTDzf1MqzKAJn1To_huc,9721
|
|
23
|
-
picata/migrations/0002_alter_article_content_alter_basicpage_content.py,sha256=WlmmGgbAaBCZvR904W8gAeyxp30fOfi4a0D5Xpiojsk,4490
|
|
24
|
-
picata/migrations/0003_alter_article_content_alter_basicpage_content.py,sha256=i2KD213JKxzM7Kgxlfufxz405IICBoVFJVeNBZuaRlI,4300
|
|
25
|
-
picata/migrations/0004_alter_article_content_alter_basicpage_content.py,sha256=sZ_ky-xTZREr43y9Zrh1DaqUS5ZXi4r7ilL_EZf9L_E,4204
|
|
26
|
-
picata/migrations/0005_socialsettings.py,sha256=flfEf47418UX972SoL0nta2gKjambGFACXpFD_oeY0s,1541
|
|
27
|
-
picata/migrations/0006_alter_article_content.py,sha256=EVTuWtWf74mpD-YvZEzBEdmwHAixzn4R5PxEABl8n0Q,2690
|
|
28
|
-
picata/migrations/0007_splitviewpage.py,sha256=KK67Kw4kbxVm56BZfKj58mDajZfsCpLwspAFegKQgNA,2675
|
|
29
|
-
picata/migrations/0008_alter_splitviewpage_content.py,sha256=Y5aj5rTgclKxAgpPF7wCOxDpyFe4rrVkxa_YsEAoYCc,3829
|
|
30
|
-
picata/migrations/0009_alter_splitviewpage_content.py,sha256=PPu4Hqtm7PkbQYRB_CzqsS-G3-vkAPncPco8Zrn1IXY,4406
|
|
31
|
-
picata/migrations/0010_alter_splitviewpage_content.py,sha256=Re61nL4y6zHRGMhxADkqHNDkfoWQ8bHGbZK74uJXatg,4265
|
|
32
|
-
picata/migrations/0011_alter_splitviewpage_options_and_more.py,sha256=OPtQipM3COYRVf9RaP9G8ec0x3NlyR8wT1er3m11kg8,4527
|
|
33
|
-
picata/migrations/0012_alter_splitviewpage_content.py,sha256=pPERBPW4uduQ-sGops44p2gavJ2hYh5toZ67hmvjhLo,4357
|
|
34
|
-
picata/migrations/0013_alter_article_content.py,sha256=zVn-YC5jhXiG_c6hkD_uhAgu1BCdsqA1j1xfgJj5n1U,1571
|
|
35
|
-
picata/migrations/0014_alter_article_content_alter_article_summary.py,sha256=5RvNPNyjy0dnyOw9RfcuTB8pFlpmg6p3yK8kuR0zgMk,1186
|
|
36
|
-
picata/migrations/0015_alter_article_options_article_tagline_and_more.py,sha256=8ToGgChYwqSoxo5EgwM8SISbQhFt7yewH-fN3raNE_Y,849
|
|
37
|
-
picata/migrations/0016_alter_article_options_alter_articletag_options_and_more.py,sha256=yxDQhzCMOZCl3NPEyYnM1Yw1E5HAn4wN_BPV5PYrMxE,917
|
|
38
|
-
picata/migrations/0017_articletagrelation_alter_article_tags_and_more.py,sha256=3rPB6p0GxwTCvTVQIDKNFBtrf26q99mdmQwoCqpXyM8,1341
|
|
39
|
-
picata/migrations/0018_rename_articletag_pagetag_and_more.py,sha256=0wFB82uAlJZAA7BD1OVTJIWvY5by8fZss7TIVsVLnnY,485
|
|
40
|
-
picata/migrations/0019_rename_name_plural_articletype__name_plural.py,sha256=K58-B-V2ld2gJ7OuHnrQchC7zZvLP2Bnss3bQB5oS84,391
|
|
41
|
-
picata/migrations/0020_rename__name_plural_articletype__pluralised_name.py,sha256=X9zRPk5G6iMwitrr5BTUB9Nk9VqQQ951HfBrQ8_MXD4,405
|
|
42
|
-
picata/migrations/0021_rename_article_type_article_page_type.py,sha256=DtxWYyke-8RmoFqpW817rtrIzVMSV8wqCpS1e911Nxc,399
|
|
43
|
-
picata/migrations/0022_homepage.py,sha256=SYpqIlquJzLh4YozTcJVjR_0fW_v9GRrY75bnAUk0vE,3591
|
|
44
|
-
picata/migrations/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
45
|
-
picata/settings/__init__.py,sha256=5qI40E9aCWsFanUxAnruZi1wXrad3oAwnusglycfPsk,47
|
|
46
|
-
picata/settings/base.py,sha256=APK6EyBUu1C3Q8VX8JciKTQX-iZcARm2BMD54LDgAaY,9273
|
|
47
|
-
picata/settings/dev.py,sha256=6SXFuEH3NTq2L3iWcC49Ky3gxJnPflHE3TtjByzuEOg,2796
|
|
48
|
-
picata/settings/mypy.py,sha256=M-_KU9Qi4twjCHwwuhFbGz9hnIU3TXLH0Sg3XionVNY,148
|
|
49
|
-
picata/settings/prod.py,sha256=iPsqLOdinblT_ayqMW2_GqpNccsXJlWA9-kA015X7Vo,474
|
|
50
|
-
picata/settings/test.py,sha256=H_Wkn_gjsIV0r5HsU-s5HLhW_Oi63VQp4Afj2TIgRhI,244
|
|
51
|
-
picata/static/picata/ada-profile.jpg,sha256=HlewC8MPH_zSr--pUXV5JCEE0emOrn8BIKCQv41WidA,209953
|
|
52
|
-
picata/static/picata/ada-social-bear.jpg,sha256=3jH2kf57boRLS5AD7M-qW-xsBP84didfeM1KN5Xp4tc,128453
|
|
53
|
-
picata/static/picata/favicon.ico,sha256=MJLjMSsDpx9Mjb1v7y8V5oPMX3gLtD4cIDmNAdOgHC8,15406
|
|
54
|
-
picata/static/picata/icons.svg,sha256=LRLgy8bHyZKorDyPxkO2mMdbevKs40sCnhdWoO29pdY,11320
|
|
55
|
-
picata/static/picata/fonts/Bitter-Light.ttf,sha256=JCgJXY06RiEONk2htx2bitpL3zqeGGJ01Z81fwRTwAo,182212
|
|
56
|
-
picata/static/picata/fonts/Bitter-LightItalic.ttf,sha256=A6oI_l_kGd2F9-V0eOYMoydigDPRdahO6aUKMvQXddY,181412
|
|
57
|
-
picata/static/picata/fonts/FiraCode-Light.ttf,sha256=bKCGEsYc36CaTQ_0-STZkfU7PDJXZpyQQDfQD7oJyTQ,188708
|
|
58
|
-
picata/static/picata/fonts/FiraCode-SemiBold.ttf,sha256=BsEuLjCqZkqwFH0_iBxrWH1hrdhDZa9cNM61DkA5hiE,188848
|
|
59
|
-
picata/static/picata/fonts/Sacramento-Regular.ttf,sha256=pbneZ75FSoJrRthYUS4y7sjDAxK-tMT4ZK7iOQQU6cU,64808
|
|
60
|
-
picata/static/picata/fonts/ZillaSlab-Bold.ttf,sha256=7Fo-wbzMoTThzw3ivb2PiLNcB1atOZdGClX22mwHu_Q,248052
|
|
61
|
-
picata/static/picata/fonts/ZillaSlab-BoldItalic.ttf,sha256=xra8p0e0zYZ5gyu5w6BeR8fnOJbZkeoIRFZuRm-FpEI,255272
|
|
62
|
-
picata/static/picata/fonts/ZillaSlab-Light.ttf,sha256=x9c6KiQ-iPpyqCDb2yYgDqi0GW-DNM8YIyTXqehumJ8,239836
|
|
63
|
-
picata/static/picata/fonts/ZillaSlab-LightItalic.ttf,sha256=8pgf5nlQb5DBqfaNKDj2P7iDMRwaW80YjaC3hXb72PA,245200
|
|
64
|
-
picata/static/picata/fonts/ZillaSlabHighlight-Bold.ttf,sha256=MbNNCVxe1Kt-j8rJpognUmTZrh9R9je-35MgwoeL7eU,245180
|
|
65
|
-
picata/templates/picata/3_column.html,sha256=4SYfqTbmAtYICEulpx1RWocBCQUUn32EnZJrcxfVWwA,790
|
|
66
|
-
picata/templates/picata/404.html,sha256=4q8kKGGHWDk9Z8ThW2rP70T3SQrGNGRf153pvYcV7VE,230
|
|
67
|
-
picata/templates/picata/500.html,sha256=1xvvK2uoiZKkc2EuVVnbfg69KmrCJUdplR0vvFtWvKo,369
|
|
68
|
-
picata/templates/picata/_post_list.html,sha256=JpvNAOGmupLQIC6lTyjoyNOyRGMUQwOqEvEaZgSPrsM,915
|
|
69
|
-
picata/templates/picata/article.html,sha256=NBwXpicb_oL2xy3FN8_6KJNbrrQD2rTrNIu1ngOietk,794
|
|
70
|
-
picata/templates/picata/base.html,sha256=gE8pChABBlXUYfyQCkUdVZx9tFHS-cnMEWGNeaHGziI,8140
|
|
71
|
-
picata/templates/picata/basic_page.html,sha256=1FS_xdL6erskk9T-_TP3JWARczVstOLzs2ttvkbPbdk,173
|
|
72
|
-
picata/templates/picata/dl_view.html,sha256=epAV72HR2f0I3GWBEngUtYOQnHSsXs_SsNlhH7u-JbU,494
|
|
73
|
-
picata/templates/picata/home_page.html,sha256=nVDZwlsXfKtdSwQR80e0cHtiX7hf91ws5tYhu_ug_gU,635
|
|
74
|
-
picata/templates/picata/post_listing.html,sha256=3aSWYdPfwvYblE4s7b2P_dOLiiCWcrT1uvXRuDBak5Y,428
|
|
75
|
-
picata/templates/picata/search_results.html,sha256=P5HwdkLX2iQjZFEtD4YOp4Mun17btshjKBw__z6q8Hs,957
|
|
76
|
-
picata/templates/picata/split_view.html,sha256=DqRUKT5wc_-ByibQRZoyDU91omK6TgK7wC3Rp72bbgM,402
|
|
77
|
-
picata/templates/picata/blocks/icon_link_item.html,sha256=t-9LoA00Nv-H031yIL8es89zevbn315jlr5LTiAyM_o,301
|
|
78
|
-
picata/templates/picata/blocks/icon_link_list.html,sha256=7KU-hLOhAdKnoecLcugqWNzO5SgPnN9XfTDs1y60f0c,261
|
|
79
|
-
picata/templates/picata/blocks/icon_link_list_stream.html,sha256=B7yz5Ss_dT_5NIMsVwggnGFGmRgawNQrvnowaJUSUnw,69
|
|
80
|
-
picata/templates/picata/previews/3col.html,sha256=CwnWJpK5dvmVxqhBuu0QSFHWKhZlnc3xEowMQk3ltBo,4473
|
|
81
|
-
picata/templates/picata/previews/dl.html,sha256=ANOqlD3nlj5NF-4sPmya3eo0CNwmxgmUXswmz22Bh30,2095
|
|
82
|
-
picata/templates/picata/previews/split.html,sha256=hqv27u4wKTX8jJiNMazXioyRU9Uajpys_7LVQeI3NtE,2106
|
|
83
|
-
picata/templates/picata/previews/theme_gallery.html,sha256=f10610quPimz6xzpozvpZtdRrTpSP5KFIppuGeOZ308,8007
|
|
84
|
-
picata/templates/picata/tags/site_menu.html,sha256=Tb_BjV88ZH-nRb76alzSXPVUokPC9O2mVByKmeAgQWA,223
|
|
85
|
-
picata/templatetags/__init__.py,sha256=YNGfxmI00gewcJkkUlH219BHimHD_4p5Lz-zXPvgO-U,47
|
|
86
|
-
picata/templatetags/absolute_static.py,sha256=asY9uNFShD5iQCaU-ZjsgXQOJNlmLmkoOvRs2WWhEYE,454
|
|
87
|
-
picata/templatetags/menu_tags.py,sha256=WvsyNHyuD4oiueedWjqnej2PrAQW0FdlGeEYrYd_xbs,1267
|
|
88
|
-
picata/templatetags/stringify.py,sha256=QxStfcCgn29IGinH_bdsZoaiTLL7pz30ObDitlagecs,850
|
|
89
|
-
picata/typing/__init__.py,sha256=Nu2HZtspAQTzxMx6gmRKdDp9DfqmFc5urxfokXp2k-Y,402
|
|
90
|
-
picata/typing/wagtail.py,sha256=r84cf-8AzaWCMULF4HRjl5wmTFKIxw2DwvhxmIDurjA,661
|
|
91
|
-
picata-0.0.1.dist-info/METADATA,sha256=CzIkWSGSTfq45DELALkcS2ReZ-sxZ3sJ-vMpyfRWq7M,2996
|
|
92
|
-
picata-0.0.1.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
|
|
93
|
-
picata-0.0.1.dist-info/licenses/LICENSE.md,sha256=Bv8sMyZI5NI6DMrfiAvCwIFRLSfJkimLF2KVcUMteKU,1103
|
|
94
|
-
picata-0.0.1.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|