diff --git a/app/templates/texts.html b/app/templates/texts.html index 02897aa..4b9bd77 100644 --- a/app/templates/texts.html +++ b/app/templates/texts.html @@ -3,10 +3,17 @@ {% block main %}
- {% for text in texts %} -
+ {% for text in en_texts %} +

{{ text.title | safe }}

{{ text.byline|striptags }}

{% endfor %} + {% for text in zh_texts %} +
+

{{ text.title | safe }}

+

{{ text.byline|striptags }}

+
+ {% endfor %} +
{% endblock %} diff --git a/app/text/admin.py b/app/text/admin.py index 00a8b9f..aed4364 100644 --- a/app/text/admin.py +++ b/app/text/admin.py @@ -9,11 +9,12 @@ class TextAdmin(admin.ModelAdmin): '__str__', 'item', 'edit', + 'language', 'slug', 'public', 'position', ) - + list_editable = ['public', 'language'] def item(self, obj): return obj.data.get('item') def edit(self, obj): diff --git a/app/text/migrations/0008_auto_20211028_1007.py b/app/text/migrations/0008_auto_20211028_1007.py new file mode 100644 index 0000000..638b0c6 --- /dev/null +++ b/app/text/migrations/0008_auto_20211028_1007.py @@ -0,0 +1,23 @@ +# Generated by Django 3.2.7 on 2021-10-28 10:07 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('text', '0007_text_annotations'), + ] + + operations = [ + migrations.AddField( + model_name='text', + name='language', + field=models.CharField(choices=[('en', 'EN'), ('zh', 'ZH')], default='en', max_length=8), + ), + migrations.AlterField( + model_name='text', + name='annotations', + field=models.JSONField(blank=True, default=dict, editable=False), + ), + ] diff --git a/app/text/models.py b/app/text/models.py index f61238e..c28d7ea 100644 --- a/app/text/models.py +++ b/app/text/models.py @@ -32,14 +32,19 @@ class Page(models.Model): return '/' + settings.URL_PREFIX[:-1] +LANGUAGE_CHOICES = ( + ('en', 'EN'), + ('zh', 'ZH'), +) + class Text(models.Model): created = models.DateTimeField(auto_now_add=True) modified = models.DateTimeField(auto_now=True) - + language = models.CharField(choices=LANGUAGE_CHOICES, max_length=8, default='en') slug = models.SlugField() public = models.BooleanField(default=False) position = models.IntegerField(default=0) - + title = models.TextField() byline = models.TextField(default="", blank=True) body = models.TextField(default="", blank=True) diff --git a/app/text/views.py b/app/text/views.py index f6c14d8..23217de 100755 --- a/app/text/views.py +++ b/app/text/views.py @@ -36,7 +36,9 @@ def about(request): def texts(request): context = {} - context['texts'] = models.Text.objects.filter(public=True).order_by('position', 'created') + all_texts = models.Text.objects.filter(public=True).order_by('position', 'created') + context['en_texts'] = all_texts.filter(language='en') + context['zh_texts'] = all_texts.filter(language='zh') return render(request, 'texts.html', context) def text(request, slug):