From 84304971d7b51e6dd1450119b5891283a897d355 Mon Sep 17 00:00:00 2001 From: Yohann D'ANELLO Date: Tue, 19 Jan 2021 14:29:12 +0100 Subject: [PATCH 1/3] Add sample translation file for english Signed-off-by: Yohann D'ANELLO --- note_kfet/static/js/jsi18n/_default.js | 53 +++++----- note_kfet/static/js/jsi18n/en.js | 134 +++++++++++++++++++++++++ 2 files changed, 158 insertions(+), 29 deletions(-) create mode 100644 note_kfet/static/js/jsi18n/en.js diff --git a/note_kfet/static/js/jsi18n/_default.js b/note_kfet/static/js/jsi18n/_default.js index 97775e9d..954a7280 100644 --- a/note_kfet/static/js/jsi18n/_default.js +++ b/note_kfet/static/js/jsi18n/_default.js @@ -1,5 +1,5 @@ /* -* You should never see this file. +* If you are not using the main language, you should never see this file. * It is here only for compatibility reasons in case of the command `compilejsmessages` was never executed. * Please execute this command to generate translation strings. */ @@ -9,14 +9,7 @@ var django = globals.django || (globals.django = {}); - django.pluralidx = function(n) { - var v=(n != 1); - if (typeof(v) == 'boolean') { - return v ? 1 : 0; - } else { - return v; - } - }; + django.pluralidx = function(count) { return (count == 1) ? 0 : 1; }; /* gettext library */ @@ -73,39 +66,41 @@ /* formatting library */ django.formats = { - "DATETIME_FORMAT": "j \\d\\e F \\d\\e Y \\a \\l\\a\\s H:i", + "DATETIME_FORMAT": "N j, Y, P", "DATETIME_INPUT_FORMATS": [ - "%d/%m/%Y %H:%M:%S", - "%d/%m/%Y %H:%M:%S.%f", - "%d/%m/%Y %H:%M", - "%d/%m/%y %H:%M:%S", - "%d/%m/%y %H:%M:%S.%f", - "%d/%m/%y %H:%M", "%Y-%m-%d %H:%M:%S", "%Y-%m-%d %H:%M:%S.%f", "%Y-%m-%d %H:%M", - "%Y-%m-%d" + "%Y-%m-%d", + "%m/%d/%Y %H:%M:%S", + "%m/%d/%Y %H:%M:%S.%f", + "%m/%d/%Y %H:%M", + "%m/%d/%Y", + "%m/%d/%y %H:%M:%S", + "%m/%d/%y %H:%M:%S.%f", + "%m/%d/%y %H:%M", + "%m/%d/%y" ], - "DATE_FORMAT": "j \\d\\e F \\d\\e Y", + "DATE_FORMAT": "N j, Y", "DATE_INPUT_FORMATS": [ - "%d/%m/%Y", - "%d/%m/%y", - "%Y-%m-%d" + "%Y-%m-%d", + "%m/%d/%Y", + "%m/%d/%y" ], - "DECIMAL_SEPARATOR": ",", - "FIRST_DAY_OF_WEEK": 1, - "MONTH_DAY_FORMAT": "j \\d\\e F", + "DECIMAL_SEPARATOR": ".", + "FIRST_DAY_OF_WEEK": 0, + "MONTH_DAY_FORMAT": "F j", "NUMBER_GROUPING": 3, - "SHORT_DATETIME_FORMAT": "d/m/Y H:i", - "SHORT_DATE_FORMAT": "d/m/Y", - "THOUSAND_SEPARATOR": ".", - "TIME_FORMAT": "H:i", + "SHORT_DATETIME_FORMAT": "m/d/Y P", + "SHORT_DATE_FORMAT": "m/d/Y", + "THOUSAND_SEPARATOR": ",", + "TIME_FORMAT": "P", "TIME_INPUT_FORMATS": [ "%H:%M:%S", "%H:%M:%S.%f", "%H:%M" ], - "YEAR_MONTH_FORMAT": "F \\d\\e Y" + "YEAR_MONTH_FORMAT": "F Y" }; django.get_format = function(format_type) { diff --git a/note_kfet/static/js/jsi18n/en.js b/note_kfet/static/js/jsi18n/en.js new file mode 100644 index 00000000..97775e9d --- /dev/null +++ b/note_kfet/static/js/jsi18n/en.js @@ -0,0 +1,134 @@ +/* +* You should never see this file. +* It is here only for compatibility reasons in case of the command `compilejsmessages` was never executed. +* Please execute this command to generate translation strings. +*/ + +(function(globals) { + + var django = globals.django || (globals.django = {}); + + + django.pluralidx = function(n) { + var v=(n != 1); + if (typeof(v) == 'boolean') { + return v ? 1 : 0; + } else { + return v; + } + }; + + + /* gettext library */ + + django.catalog = django.catalog || {}; + + + if (!django.jsi18n_initialized) { + django.gettext = function(msgid) { + var value = django.catalog[msgid]; + if (typeof(value) == 'undefined') { + return msgid; + } else { + return (typeof(value) == 'string') ? value : value[0]; + } + }; + + django.ngettext = function(singular, plural, count) { + var value = django.catalog[singular]; + if (typeof(value) == 'undefined') { + return (count == 1) ? singular : plural; + } else { + return value.constructor === Array ? value[django.pluralidx(count)] : value; + } + }; + + django.gettext_noop = function(msgid) { return msgid; }; + + django.pgettext = function(context, msgid) { + var value = django.gettext(context + '\x04' + msgid); + if (value.indexOf('\x04') != -1) { + value = msgid; + } + return value; + }; + + django.npgettext = function(context, singular, plural, count) { + var value = django.ngettext(context + '\x04' + singular, context + '\x04' + plural, count); + if (value.indexOf('\x04') != -1) { + value = django.ngettext(singular, plural, count); + } + return value; + }; + + django.interpolate = function(fmt, obj, named) { + if (named) { + return fmt.replace(/%\(\w+\)s/g, function(match){return String(obj[match.slice(2,-2)])}); + } else { + return fmt.replace(/%s/g, function(match){return String(obj.shift())}); + } + }; + + + /* formatting library */ + + django.formats = { + "DATETIME_FORMAT": "j \\d\\e F \\d\\e Y \\a \\l\\a\\s H:i", + "DATETIME_INPUT_FORMATS": [ + "%d/%m/%Y %H:%M:%S", + "%d/%m/%Y %H:%M:%S.%f", + "%d/%m/%Y %H:%M", + "%d/%m/%y %H:%M:%S", + "%d/%m/%y %H:%M:%S.%f", + "%d/%m/%y %H:%M", + "%Y-%m-%d %H:%M:%S", + "%Y-%m-%d %H:%M:%S.%f", + "%Y-%m-%d %H:%M", + "%Y-%m-%d" + ], + "DATE_FORMAT": "j \\d\\e F \\d\\e Y", + "DATE_INPUT_FORMATS": [ + "%d/%m/%Y", + "%d/%m/%y", + "%Y-%m-%d" + ], + "DECIMAL_SEPARATOR": ",", + "FIRST_DAY_OF_WEEK": 1, + "MONTH_DAY_FORMAT": "j \\d\\e F", + "NUMBER_GROUPING": 3, + "SHORT_DATETIME_FORMAT": "d/m/Y H:i", + "SHORT_DATE_FORMAT": "d/m/Y", + "THOUSAND_SEPARATOR": ".", + "TIME_FORMAT": "H:i", + "TIME_INPUT_FORMATS": [ + "%H:%M:%S", + "%H:%M:%S.%f", + "%H:%M" + ], + "YEAR_MONTH_FORMAT": "F \\d\\e Y" + }; + + django.get_format = function(format_type) { + var value = django.formats[format_type]; + if (typeof(value) == 'undefined') { + return format_type; + } else { + return value; + } + }; + + /* add to global namespace */ + globals.pluralidx = django.pluralidx; + globals.gettext = django.gettext; + globals.ngettext = django.ngettext; + globals.gettext_noop = django.gettext_noop; + globals.pgettext = django.pgettext; + globals.npgettext = django.npgettext; + globals.interpolate = django.interpolate; + globals.get_format = django.get_format; + + django.jsi18n_initialized = true; + } + +}(this)); + From c109cd3ddd5ef9ee7f6893d64e0b53ffd2389b89 Mon Sep 17 00:00:00 2001 From: Yohann D'ANELLO Date: Tue, 19 Jan 2021 15:17:03 +0100 Subject: [PATCH 2/3] Source is not destination Signed-off-by: Yohann D'ANELLO --- apps/note/static/note/js/transfer.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/note/static/note/js/transfer.js b/apps/note/static/note/js/transfer.js index 02388545..cc2a7124 100644 --- a/apps/note/static/note/js/transfer.js +++ b/apps/note/static/note/js/transfer.js @@ -302,7 +302,7 @@ $('#btn_transfer').click(function () { addMsg(interpolate(gettext('Warning, the emitter note %s is no more a BDE member.'), [source.name]), 'danger', 30000) } if (dest.note.membership && dest.note.membership.date_end < new Date().toISOString()) { - addMsg(interpolate(gettext('Warning, the destination note %s is no more a BDE member.'), [source.name]), 'danger', 30000) + addMsg(interpolate(gettext('Warning, the destination note %s is no more a BDE member.'), [dest.name]), 'danger', 30000) } if (!isNaN(source.note.balance)) { From 5a05997d9df82c58277f652b5178532a761ea747 Mon Sep 17 00:00:00 2001 From: ynerant Date: Thu, 11 Feb 2021 21:38:44 +0100 Subject: [PATCH 3/3] Fix date comparison when checking a membership from the parent club Signed-off-by: ynerant --- apps/member/views.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/apps/member/views.py b/apps/member/views.py index 2ddb3591..1054f3f2 100644 --- a/apps/member/views.py +++ b/apps/member/views.py @@ -658,8 +658,8 @@ class ClubAddMemberView(ProtectQuerysetMixin, ProtectedCreateView): if club.name != "Kfet" and club.parent_club and not Membership.objects.filter( user=form.instance.user, club=club.parent_club, - date_start__gte=club.parent_club.membership_start, - date_end__lte=club.parent_club.membership_end, + date_start__lte=timezone.now(), + date_end__gte=club.parent_club.membership_end, ).exists(): form.add_error('user', _('User is not a member of the parent club') + ' ' + club.parent_club.name) error = True