Skip to content

Commit 7b4a6fa

Browse files
committed
Added option to change the books page title
1 parent 67bcc85 commit 7b4a6fa

File tree

5 files changed

+53
-1
lines changed

5 files changed

+53
-1
lines changed

admin.py

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,10 @@
33
from plugins.books.models import *
44

55

6+
class BookSettingAdmin(admin.ModelAdmin):
7+
list_display = ('book_page_title',)
8+
9+
610
class ChapterAdmin(admin.ModelAdmin):
711
"""Displays objects in the Django admin interface."""
812
list_display = ('title', 'number', 'book', 'pages', 'doi')
@@ -25,6 +29,7 @@ class BookAccessAdmin(admin.ModelAdmin):
2529
(BookAccess, BookAccessAdmin),
2630
(Chapter, ChapterAdmin),
2731
(Category,),
32+
(BookSetting, BookSettingAdmin)
2833
]
2934

3035
[admin.site.register(*t) for t in admin_list]
Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
# -*- coding: utf-8 -*-
2+
# Generated by Django 1.11.29 on 2021-05-11 09:40
3+
from __future__ import unicode_literals
4+
5+
from django.db import migrations, models
6+
7+
8+
class Migration(migrations.Migration):
9+
10+
dependencies = [
11+
('books', '0015_auto_20201202_1259'),
12+
]
13+
14+
operations = [
15+
migrations.CreateModel(
16+
name='BookSetting',
17+
fields=[
18+
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
19+
('book_page_title', models.CharField(default='Published Books', max_length=255)),
20+
],
21+
),
22+
migrations.AlterField(
23+
model_name='category',
24+
name='chapter_name',
25+
field=models.CharField(default='Chapter', max_length=200),
26+
),
27+
migrations.AlterField(
28+
model_name='category',
29+
name='chapter_name_plural',
30+
field=models.CharField(default='Chapters', max_length=200),
31+
),
32+
]

models.py

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212
from django.core.files.storage import FileSystemStorage
1313
from django.core.files.images import get_image_dimensions
1414
from django.utils import timezone
15+
from django.core.exceptions import ValidationError
1516

1617
from metrics.logic import get_iso_country_code
1718
from utils.shared import get_ip_address
@@ -33,6 +34,18 @@ def cover_images_upload_path(instance, filename):
3334
return os.path.join(path, filename)
3435

3536

37+
class BookSetting(models.Model):
38+
book_page_title = models.CharField(
39+
max_length=255,
40+
default="Published Books",
41+
)
42+
43+
def save(self, *args, **kwargs):
44+
if not self.pk and BookSetting.objects.exists():
45+
raise ValidationError('There is can be only one BookSetting instance')
46+
return super(BookSetting, self).save(*args, **kwargs)
47+
48+
3649
class Category(models.Model):
3750
name = models.CharField(max_length=255)
3851
slug = models.SlugField(max_length=255)

templates/books/index.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
<section class="content">
77
<div class="row">
88
{% if not category %}
9-
<h4>Published Books</h4>
9+
<h4>{{ book_settings.book_page_title }}</h4>
1010
{% else %}
1111
{% if category.display_title %}
1212
<h4>Category: {{ category.name }}</h4>

views.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99

1010
from plugins.books import models, forms, files, logic
1111
from core import files as core_files
12+
from utils import setting_handler
1213

1314

1415
def index(request, category_slug=None):
@@ -30,6 +31,7 @@ def index(request, category_slug=None):
3031
context = {
3132
'books': books,
3233
'category': category,
34+
'book_settings': models.BookSetting.objects.first(),
3335
}
3436

3537
return render(request, template, context)

0 commit comments

Comments
 (0)