Commit d8204656 authored by Weblate's avatar Weblate

Merge remote-tracking branch 'origin/master'

parents ff37e9e8 721e6b2e
...@@ -18,4 +18,5 @@ Administrators guide ...@@ -18,4 +18,5 @@ Administrators guide
config config
sample sample
management management
whiteboard
advertisement advertisement
Whiteboard messages
===================
You can use whiteboard messages to give some information to your translators.
The message can be site-wide or targeted on translation component or language.
This can be useful for various things from announcing purpose of the website to
specifying targets for translations.
The whiteboard can currently be specified only in the admin interface:
.. image:: ../images/whiteboard.png
...@@ -7,8 +7,12 @@ ...@@ -7,8 +7,12 @@
{% if opts.model_name == 'advertisement' %} {% if opts.model_name == 'advertisement' %}
{% doc_url 'admin/advertisement' as url %} {% doc_url 'admin/advertisement' as url %}
{% else %} {% else %}
{% if opts.model_name == 'whiteboardmessage' %}
{% doc_url 'admin/whiteboard' as url %}
{% else %}
{% doc_url 'admin/projects' opts.model_name as url %} {% doc_url 'admin/projects' opts.model_name as url %}
{% endif %} {% endif %}
{% endif %}
<p>{% blocktrans %}Required fields are marked as bold, you can find more information in the <a href="{{ url }}">documentation</a>.{% endblocktrans %}</p> <p>{% blocktrans %}Required fields are marked as bold, you can find more information in the <a href="{{ url }}">documentation</a>.{% endblocktrans %}</p>
{% else %} {% else %}
<p class="errornote">{% blocktrans %}Do not change this object here, please use Weblate interface instead.{% endblocktrans %}</p> <p class="errornote">{% blocktrans %}Do not change this object here, please use Weblate interface instead.{% endblocktrans %}</p>
......
# -*- coding: utf-8 -*-
# Generated by Django 1.9 on 2015-12-22 09:49
from __future__ import unicode_literals
from django.db import migrations, models
import django.db.models.deletion
class Migration(migrations.Migration):
dependencies = [
('lang', '0002_auto_20150630_1208'),
('trans', '0048_auto_20151120_1306'),
]
operations = [
migrations.AddField(
model_name='whiteboardmessage',
name='language',
field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to='lang.Language'),
),
migrations.AddField(
model_name='whiteboardmessage',
name='project',
field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to='trans.Project'),
),
migrations.AddField(
model_name='whiteboardmessage',
name='subproject',
field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to='trans.SubProject'),
),
migrations.AlterField(
model_name='whiteboardmessage',
name='message',
field=models.TextField(verbose_name='Message'),
),
]
...@@ -21,11 +21,19 @@ ...@@ -21,11 +21,19 @@
"""Whiteboard model.""" """Whiteboard model."""
from django.db import models from django.db import models
from django.utils.translation import ugettext_lazy from django.utils.translation import ugettext_lazy, ugettext as _
from django.core.exceptions import ValidationError
from weblate.lang.models import Language
class WhiteboardMessage(models.Model): class WhiteboardMessage(models.Model):
message = models.TextField(blank=True) message = models.TextField(
verbose_name=ugettext_lazy('Message'),
)
project = models.ForeignKey('Project', null=True, blank=True)
subproject = models.ForeignKey('SubProject', null=True, blank=True)
language = models.ForeignKey(Language, null=True, blank=True)
class Meta(object): class Meta(object):
app_label = 'trans' app_label = 'trans'
...@@ -34,3 +42,12 @@ class WhiteboardMessage(models.Model): ...@@ -34,3 +42,12 @@ class WhiteboardMessage(models.Model):
def __unicode__(self): def __unicode__(self):
return self.message return self.message
def clean(self):
if self.project and self.subproject:
if self.subproject.project == self.project:
self.project = None
else:
raise ValidationError(
_('Do not specify both component and project!')
)
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment