Skip to content
This repository has been archived by the owner on Jul 13, 2018. It is now read-only.

Commit

Permalink
Merge branch 'dev' (i18n release)
Browse files Browse the repository at this point in the history
  • Loading branch information
dot2code Technologies committed Jan 16, 2013
2 parents 042048d + a56d249 commit cd13496
Show file tree
Hide file tree
Showing 35 changed files with 593 additions and 490 deletions.
6 changes: 6 additions & 0 deletions CHANGES.txt
Original file line number Diff line number Diff line change
@@ -1,3 +1,9 @@
v0.4.2, 16/01/2013
------------------

- ES translation.
- Fixed broken e-mail exception notifications.

v0.4.1, 15/01/2013
------------------

Expand Down
9 changes: 6 additions & 3 deletions DEVELOPERS.rst
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,12 @@ development environment.
- While developing, press ``CTRL+ALT+A`` in your browser to display the
VBM debug console.

- Remember .po files can be regenerated and compiled using the following
commands::

$ python runner.py makemessages -l es -e "html,txt,email,py"
$ python varnish_bans_manager/runner.py compilemessages

Source Distribution Package
===========================

Expand Down Expand Up @@ -69,9 +75,6 @@ Note that the site building phase has some extra system requirements:
TODO
====

- Bans & groups management.
- List of recent ban submissions.
- Access to current status of bans.
- Ban templates.
- Refactor ``varnish_bans_manager.filesystem.models``.
- Locale-aware application level ordering.
2 changes: 1 addition & 1 deletion setup.py
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@

setup(
name='varnish-bans-manager',
version='0.4.1',
version='0.4.2',
author='dot2code Technologies',
author_email='info@dot2code.com',
packages=find_packages(),
Expand Down
2 changes: 1 addition & 1 deletion varnish_bans_manager/core/forms/bans.py
Original file line number Diff line number Diff line change
Expand Up @@ -178,7 +178,7 @@ class SubmissionsForm(forms.Form):
user = BetterChoiceField(
choices=(),
required=False,
placeholder=_('all submitters'))
placeholder=_('all users'))
ban_type = BetterChoiceField(
choices=BanSubmission.BAN_TYPE_CHOICES,
required=False,
Expand Down
3 changes: 2 additions & 1 deletion varnish_bans_manager/core/forms/base.py
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@
from django.core import validators
from django.forms import IntegerField, CharField, BooleanField, ChoiceField, Field
from django.utils.translation import ugettext_lazy as _
from django.utils.translation import string_concat
from django.forms.widgets import SelectMultiple


Expand Down Expand Up @@ -46,7 +47,7 @@ def __init__(self, default=None, *args, **kwargs):

class BetterChoiceField(ChoiceField):
def __init__(self, choices=(), placeholder=None, *args, **kwargs):
choices = tuple([(u'', (u'- %s -' % unicode(placeholder)) if placeholder else u'')] + list(choices))
choices = tuple([(u'', string_concat('- ', placeholder, ' -') if placeholder else u'')] + list(choices))
super(BetterChoiceField, self).__init__(choices=choices, *args, **kwargs)

def clean(self, value):
Expand Down
4 changes: 2 additions & 2 deletions varnish_bans_manager/core/forms/caches/nodes.py
Original file line number Diff line number Diff line change
Expand Up @@ -23,8 +23,8 @@ class Meta:
model = Node
fields = ('name', 'host', 'port', 'secret', 'version', 'group',)
widgets = {
'host': forms.TextInput(attrs={'placeholder': 'Host name or IP address'}),
'port': forms.TextInput(attrs={'placeholder': 'Port number'}),
'host': forms.TextInput(attrs={'placeholder': _('Host name or IP address')}),
'port': forms.TextInput(attrs={'placeholder': _('Port number')}),
}


Expand Down
18 changes: 9 additions & 9 deletions varnish_bans_manager/core/forms/settings.py
Original file line number Diff line number Diff line change
Expand Up @@ -15,17 +15,11 @@
class GeneralForm(forms.Form):
host_matching_variable = forms.CharField(
label=_('Host matching variable'),
help_text=_(
'If not specified, defaults to <code>%s</code> for lurker friendly bans.' %
Setting.DEFAULT_HOST_MATCHING_VARIABLE),
max_length=128,
required=False)

url_matching_variable = forms.CharField(
label=_('URL matching variable'),
help_text=_(
'If not specified, defaults to <code>%s</code> for lurker friendly bans.' %
Setting.DEFAULT_URL_MATCHING_VARIABLE),
max_length=128,
required=False)

Expand All @@ -39,14 +33,20 @@ class GeneralForm(forms.Form):
required=False)

notify_bans = forms.BooleanField(
label=_(
'Deliver periodical ban submission reports to <code>%s</code>.' %
settings.VBM_NOTIFICATIONS_EMAIL),
help_text=_('Adjust VBM settings file to use a different e-mail address.'),
required=False)

def __init__(self, *args, **kwargs):
super(GeneralForm, self).__init__(*args, **kwargs)
self.fields['host_matching_variable'].help_text = _(
'If not specified, defaults to <code>%s</code> for lurker friendly bans.'
) % Setting.DEFAULT_HOST_MATCHING_VARIABLE
self.fields['url_matching_variable'].help_text = _(
'If not specified, defaults to <code>%s</code> for lurker friendly bans.'
) % Setting.DEFAULT_URL_MATCHING_VARIABLE
self.fields['notify_bans'].label = _(
'Deliver periodical ban submission reports to <code>%s</code>.'
) % settings.VBM_NOTIFICATIONS_EMAIL
for field_name in self.fields.keys():
self.initial[field_name] = getattr(Setting, field_name)

Expand Down
2 changes: 1 addition & 1 deletion varnish_bans_manager/core/forms/users.py
Original file line number Diff line number Diff line change
Expand Up @@ -139,7 +139,7 @@ def __init__(self, permissions=[], *args, **kwargs):
widget=CheckboxSelectMultiple,
initial=list(set(permissions) & set(PERMISSIONS.keys())),
choices=[
(permission, Permission.objects.get(codename=permission).name)
(permission, _(Permission.objects.get(codename=permission).name))
for permission in PERMISSIONS.keys()
])

Expand Down
2 changes: 1 addition & 1 deletion varnish_bans_manager/core/helpers/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,6 @@
from __future__ import absolute_import
from django.utils.translation import ugettext_lazy as _

DEFAULT_SUCCESS_MESSAGE = _('All changes have been successfully saved!')
DEFAULT_SUCCESS_MESSAGE = _('All changes have been saved!')
DEFAULT_ERROR_MESSAGE = _("We are sorry, but the request couldn't be processed. Please, try again later.")
DEFAULT_FORM_ERROR_MESSAGE = _('Form contains errors! Please review it and try again.')
14 changes: 7 additions & 7 deletions varnish_bans_manager/core/models/user_profile.py
Original file line number Diff line number Diff line change
Expand Up @@ -82,11 +82,11 @@ def editable_user_permission_labels(self):
class Meta:
app_label = 'core'
permissions = (
('can_access_advanced_ban_submission', _('Access advanced ban submission form')),
('can_access_expert_ban_submission', _('Access expert ban submission form')),
('can_access_bans_submissions', _('Access bans submissions')),
('can_access_bans_status', _('Access bans status')),
('can_access_caches_management', _('Access caches management')),
('can_access_users_management', _('Access users management')),
('can_access_settings', _('Access settings')),
('can_access_advanced_ban_submission', 'Access advanced ban submission form'),
('can_access_expert_ban_submission', 'Access expert ban submission form'),
('can_access_bans_submissions', 'Access bans submissions'),
('can_access_bans_status', 'Access bans status'),
('can_access_caches_management', 'Access caches management'),
('can_access_users_management', 'Access users management'),
('can_access_settings', 'Access settings'),
)
4 changes: 2 additions & 2 deletions varnish_bans_manager/core/tasks/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,13 +6,13 @@
"""

from __future__ import absolute_import
from django.utils.translation import get_language_from_request
from django.utils.translation import get_language
from django.core.signing import TimestampSigner, b64_encode, b64_decode
from celery.result import AsyncResult


def enqueue(request, task, *args, **kwargs):
result = task.delay(language=get_language_from_request(request), *args, **kwargs)
result = task.delay(language=get_language(), *args, **kwargs)
signer = TimestampSigner(key=request.session.session_key, sep=':')
return signer.sign(b64_encode(result.id))

Expand Down
4 changes: 2 additions & 2 deletions varnish_bans_manager/core/tasks/bans.py
Original file line number Diff line number Diff line change
Expand Up @@ -72,7 +72,7 @@ def irun(self, ban_submission):
ban_submission_item.success = True
except Exception as e:
ban_submission_item.success = False
ban_submission_item.message = str(e)
ban_submission_item.message = unicode(e)
# Save ban submission item and update progress.
ban_submission.items.add(ban_submission_item)
self.set_progress(index + 1, num_items)
Expand Down Expand Up @@ -101,7 +101,7 @@ def irun(self, cache):
try:
bans.append((node, set(node.ban_list())))
except Exception as e:
result['errors'].append((node.human_name, str(e)))
result['errors'].append((node.human_name, unicode(e)))
self.set_progress(index + 1, num_items)

# Merge expressions.
Expand Down
2 changes: 1 addition & 1 deletion varnish_bans_manager/core/tasks/users.py
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,7 @@ def irun(self, ids):
try:
user = User.objects.get(pk=id)
writer.writerow([
str(user.id),
unicode(user.id),
user.email,
user.first_name,
user.last_name,
Expand Down
4 changes: 2 additions & 2 deletions varnish_bans_manager/core/views/bans.py
Original file line number Diff line number Diff line change
Expand Up @@ -93,8 +93,8 @@ def callback(cls, request, result, context):
]
else:
messages.success(request, ungettext(
'Your ban has been successfully submitted to %(count)d cache.',
'Your ban has been successfully submitted to %(count)d caches.',
'Your ban has been submitted and successfully processed by %(count)d cache.',
'Your ban has been submitted and successfully processed by %(count)d caches.',
successful_items_count) % {'count': successful_items_count})
return [
commands.navigate(destination),
Expand Down
2 changes: 1 addition & 1 deletion varnish_bans_manager/core/views/caches/groups.py
Original file line number Diff line number Diff line change
Expand Up @@ -84,7 +84,7 @@ class Delete(Base):
def post(self, request, group):
try:
group.delete()
messages.success(request, _('The group has been successfully deleted. Its nodes are no longer assigned to any group.'))
messages.success(request, _('The group has been deleted. Its nodes are no longer assigned to any group.'))
except:
messages.error(request, DEFAULT_ERROR_MESSAGE)
return HttpResponseAjax([
Expand Down
2 changes: 1 addition & 1 deletion varnish_bans_manager/core/views/caches/nodes.py
Original file line number Diff line number Diff line change
Expand Up @@ -84,7 +84,7 @@ class Delete(Base):
def post(self, request, node):
try:
node.delete()
messages.success(request, _('The node has been successfully deleted.'))
messages.success(request, _('The node has been deleted.'))
except:
messages.error(request, DEFAULT_ERROR_MESSAGE)
return HttpResponseAjax([
Expand Down
2 changes: 1 addition & 1 deletion varnish_bans_manager/core/views/task.py
Original file line number Diff line number Diff line change
Expand Up @@ -82,7 +82,7 @@ def post(self, request, token):
async_result = tasks.find(request, token)
if async_result and async_result.task_id:
revoke(async_result.task_id, terminate=True, signal='SIGKILL')
messages.info(request, _("The task execution has been successfully aborted."))
messages.info(request, _("The task execution has been aborted."))
else:
messages.error(request, DEFAULT_ERROR_MESSAGE)
return HttpResponseAjax([
Expand Down
10 changes: 5 additions & 5 deletions varnish_bans_manager/core/views/user.py
Original file line number Diff line number Diff line change
Expand Up @@ -88,7 +88,7 @@ def _render(self, form):
class Logout(Base):
def get(self, request):
auth.logout(request)
messages.success(request, _('You have been successfully disconnected. See you soon!'))
messages.success(request, _('You have been disconnected. See you soon!'))
return HttpResponseRedirect(reverse('index'))


Expand All @@ -104,8 +104,8 @@ def post(self, request):
form.save(request)

# Done!
messages.success(request, _('An e-mail with password reset instructions has been \
delivered to %(email)s. Please, check your inbox and follow the instructions.') %
messages.success(request, _('An e-mail with password reset instructions has been '
'delivered to %(email)s. Please, check your inbox and follow the instructions.') %
{'email': form.user.email})
return HttpResponseAjax([
commands.navigate(reverse('user-login')),
Expand Down Expand Up @@ -150,7 +150,7 @@ def post(self, request, user):
form.save(request)

# Done!
messages.success(request, _('Your user password has been successfully updated.'))
messages.success(request, _('Your password has been updated.'))
return HttpResponseAjax([
commands.navigate(reverse('user-login')),
], request)
Expand Down Expand Up @@ -196,7 +196,7 @@ def post(self, request):
form = PasswordChangeForm(request.user, data=request.POST)
if form.is_valid():
form.save(request)
messages.success(request, _("Your password has been successfully updated."))
messages.success(request, _("Your password has been updated."))
return HttpResponseAjax([
commands.reload(request),
], request)
Expand Down
10 changes: 5 additions & 5 deletions varnish_bans_manager/core/views/users.py
Original file line number Diff line number Diff line change
Expand Up @@ -92,8 +92,8 @@ def _launch_task(self, request, form, task, title, destination):
def delete_callback(cls, request, result, context):
if result['errors'] == 0:
messages.success(request, ungettext(
'%(count)d user has been successfully deleted.',
'%(count)d users have been successfully deleted.',
'%(count)d user has been deleted.',
'%(count)d users have been deleted.',
result['deleted']) % {'count': result['deleted']})
else:
messages.error(request, ungettext(
Expand All @@ -111,8 +111,8 @@ def download_csv_callback(cls, request, result, context):
}
if result['errors'] == 0:
messages.success(request, (ungettext(
'%(count)d user has been successfully exported.',
'%(count)d users have been successfully exported.',
'%(count)d user has been exported.',
'%(count)d users have been exported.',
result['exported']) % {'count': result['exported']}) + ' ' + instructions)
else:
messages.error(request, (ungettext(
Expand Down Expand Up @@ -189,7 +189,7 @@ def post(self, request, user):
@classmethod
def callback(cls, request, result, context):
if result['deleted'] == 1:
messages.success(request, _('The user has been successfully deleted.'))
messages.success(request, _('The user has been deleted.'))
else:
messages.error(request, DEFAULT_ERROR_MESSAGE)
return [
Expand Down
Loading

0 comments on commit cd13496

Please sign in to comment.