def initial_context(self, request, scheme, value, year, month, day): context = super(TimetableView, self).initial_context(request) context['entity'] = get_entity(scheme, value) if year and month and day: try: context['date'] = date(int(year), int(month), int(day)) except ValueError: raise Http404() else: context['date'] = date.today() if context['entity'].scheduledstop_set.all().count() == 0: # 404 on entities which don't have timetables raise Http404() services = context['entity'].scheduledstop_set.filter( journey__runs_from__lte=context['date'], journey__runs_until__gte=context['date'] ).exclude(activity__in=('D','N','F')).order_by('std') context['timetable'] = filter(lambda s: s.journey.runs_on(context['date']), services) context['title'] = _('Timetable for %(title)s on %(date)s') % { 'title': context['entity'].title, 'date': djangodate(context['date']) } return context
def initial_context(self, request, scheme, value, year, month, day): context = super(TimetableView, self).initial_context(request) context['entity'] = get_entity(scheme, value) if year and month and day: try: context['date'] = date(int(year), int(month), int(day)) except ValueError: raise Http404() else: context['date'] = date.today() if context['entity'].scheduledstop_set.all().count() == 0: # 404 on entities which don't have timetables raise Http404() services = context['entity'].scheduledstop_set.filter( journey__runs_from__lte=context['date'], journey__runs_until__gte=context['date']).exclude( activity__in=('D', 'N', 'F')).order_by('std') context['timetable'] = filter( lambda s: s.journey.runs_on(context['date']), services) context['title'] = _('Timetable for %(title)s on %(date)s') % { 'title': context['entity'].title, 'date': djangodate(context['date']) } return context
def htdate(context, date, dateformat='DATE_FORMAT'): """ Render date in the current locale To render date in a custom format use Django format, details: http://docs.djangoproject.com/en/dev/ref/templates/builtins/#date """ if not date: return '' lang = translation.get_language() localeformat = dateformat formatspath = getattr(settings, 'FORMAT_MODULE_PATH', 'anaf.formats') try: modulepath = formatspath + "." + lang + ".formats" module = __import__(modulepath, fromlist=[str(modulepath)]) localeformat = getattr(module, dateformat, dateformat) except ImportError: pass request = context['request'] user = None if request.user.username: try: user = request.user.profile except Exception: pass # timezone default_timezone = settings.ANAF_SERVER_DEFAULT_TIMEZONE try: conf = ModuleSetting.get('default_timezone')[0] default_timezone = conf.value except: pass try: conf = ModuleSetting.get('default_timezone', user=user)[0] default_timezone = conf.value except Exception: default_timezone = settings.ANAF_SERVER_TIMEZONE[default_timezone][0] all_timezones = settings.ANAF_SERVER_TIMEZONE title = all_timezones[int(default_timezone)][1] GMT = title[4:10] # with sign e.g. +06:00 sign = GMT[0:1] # + or - hours = int(GMT[1:3]) # e.g. 06 mins = int(GMT[4:6]) if sign == "-": date = date - timedelta(hours=hours, minutes=mins) else: date = date + timedelta(hours=hours, minutes=mins) result = djangodate(date, localeformat) return Markup(result)
def htdate(context, date, dateformat='DATE_FORMAT'): """ Render date in the current locale To render date in a custom format use Django format, details: http://docs.djangoproject.com/en/dev/ref/templates/builtins/#date """ if not date: return '' lang = translation.get_language() localeformat = dateformat formatspath = getattr(settings, 'FORMAT_MODULE_PATH', 'treeio.formats') try: modulepath = formatspath + "." + lang + ".formats" module = __import__(modulepath, fromlist=[str(modulepath)]) localeformat = getattr(module, dateformat, dateformat) except ImportError: pass request = context['request'] user = None if request.user.username: try: user = request.user.get_profile() except Exception: pass # timezone default_timezone = settings.HARDTREE_SERVER_DEFAULT_TIMEZONE try: conf = ModuleSetting.get('default_timezone')[0] default_timezone = conf.value except: pass try: conf = ModuleSetting.get('default_timezone', user=user)[0] default_timezone = conf.value except Exception: default_timezone = getattr(settings, 'HARDTREE_SERVER_TIMEZONE')[default_timezone][0] all_timezones = getattr(settings, 'HARDTREE_SERVER_TIMEZONE', [(1, '(GMT-11:00) International Date Line West')]) title = all_timezones[int(default_timezone)][1] GMT = title[4:10] # with sign e.g. +06:00 sign = GMT[0:1] # + or - hours = int(GMT[1:3]) # e.g. 06 mins = int(GMT[4:6]) if sign == "-": date = date - timedelta(hours=hours, minutes=mins) else: date = date + timedelta(hours=hours, minutes=mins) result = djangodate(date, localeformat) return Markup(result)
def htdatetime(context, date, dateformat='DATETIME_FORMAT'): """ Shortcut: render datetime in the current locale """ if not date: return '' lang = translation.get_language() localeformat = dateformat formatspath = getattr(settings, 'FORMAT_MODULE_PATH', 'treeio.formats') try: modulepath = formatspath + "." + lang + ".formats" module = __import__(modulepath, fromlist=[str(modulepath)]) localeformat = getattr(module, dateformat, dateformat) except ImportError: pass request = context['request'] user = None if request.user.username: try: user = request.user.get_profile() except Exception: pass # timezone default_timezone = settings.HARDTREE_SERVER_DEFAULT_TIMEZONE try: conf = ModuleSetting.get('default_timezone')[0] default_timezone = conf.value except: pass try: conf = ModuleSetting.get('default_timezone', user=user)[0] default_timezone = conf.value except Exception: default_timezone = getattr( settings, 'HARDTREE_SERVER_TIMEZONE')[default_timezone][0] all_timezones = getattr(settings, 'HARDTREE_SERVER_TIMEZONE', [(1, '(GMT-11:00) International Date Line West')]) title = all_timezones[int(default_timezone)][1] GMT = title[4:10] # with sign e.g. +06:00 sign = GMT[0:1] # + or - hours = int(GMT[1:3]) # e.g. 06 mins = int(GMT[4:6]) if sign == "-": date = date - timedelta(hours=hours, minutes=mins) else: date = date + timedelta(hours=hours, minutes=mins) result = djangodate(date, localeformat) return Markup(result)
def htdatetime(context, date, dateformat="DATETIME_FORMAT"): """ Shortcut: render datetime in the current locale """ if not date: return "" lang = translation.get_language() localeformat = dateformat formatspath = getattr(settings, "FORMAT_MODULE_PATH", "anaf.formats") try: modulepath = formatspath + "." + lang + ".formats" module = __import__(modulepath, fromlist=[str(modulepath)]) localeformat = getattr(module, dateformat, dateformat) except ImportError: pass request = context["request"] user = None if request.user.username: try: user = request.user.profile except Exception: pass # timezone default_timezone = settings.ANAF_SERVER_DEFAULT_TIMEZONE try: conf = ModuleSetting.get("default_timezone")[0] default_timezone = conf.value except: pass try: conf = ModuleSetting.get("default_timezone", user=user)[0] default_timezone = conf.value except Exception: default_timezone = settings.ANAF_SERVER_TIMEZONE[default_timezone][0] all_timezones = settings.ANAF_SERVER_TIMEZONE title = all_timezones[int(default_timezone)][1] GMT = title[4:10] # with sign e.g. +06:00 sign = GMT[0:1] # + or - hours = int(GMT[1:3]) # e.g. 06 mins = int(GMT[4:6]) if sign == "-": date = date - timedelta(hours=hours, minutes=mins) else: date = date + timedelta(hours=hours, minutes=mins) result = djangodate(date, localeformat) return Markup(result)
def cdate(value, arg): temp = (djangodate(value, arg) .replace('January', ugettext('January')) .replace('February', ugettext('February')) .replace('March', ugettext('March')) .replace('April', ugettext('April')) .replace('May', ugettext('May')) .replace('June', ugettext('June')) .replace('July', ugettext('July')) .replace('August', ugettext('August')) .replace('September', ugettext('September')) .replace('October', ugettext('October')) .replace('November', ugettext('November')) .replace('December', ugettext('December')) .replace('Jan.', ugettext('Jan.')) .replace('Feb.', ugettext('Feb.')) .replace('Aug.', ugettext('Aug.')) .replace('Sept.', ugettext('Sept.')) .replace('Oct.', ugettext('Oct.')) .replace('Nov.', ugettext('Nov.')) .replace('Dec.', ugettext('Dec.')) .replace('jan', ugettext('jan')) .replace('feb', ugettext('feb')) .replace('mar', ugettext('mar')) .replace('apr', ugettext('apr')) .replace('may', ugettext('may')) .replace('jun', ugettext('jun')) .replace('jul', ugettext('jul')) .replace('aug', ugettext('aug')) .replace('sep', ugettext('sep')) .replace('oct', ugettext('oct')) .replace('nov', ugettext('nov')) .replace('dec', ugettext('dec')) .replace('Monday', ugettext('Monday')) .replace('Tuesday', ugettext('Tuesday')) .replace('Wednesday', ugettext('Wednesday')) .replace('Thursday', ugettext('Thursday')) .replace('Friday', ugettext('Friday')) .replace('Saturday', ugettext('Saturday')) .replace('Sunday', ugettext('Sunday')) .replace('mon', ugettext('mon')) .replace('tue', ugettext('tue')) .replace('wed', ugettext('wed')) .replace('thu', ugettext('thu')) .replace('fri', ugettext('fri')) .replace('sat', ugettext('sat')) .replace('sun', ugettext('sun')) ) return temp
def humanize_datetime(context, value): """ Finds the difference between the datetime value given and now() and returns appropriate humanize form """ request = context['request'] user = None if request.user.username: try: user = request.user.profile except: pass # timezone default_timezone = settings.ANAF_SERVER_DEFAULT_TIMEZONE try: conf = ModuleSetting.get('default_timezone')[0] default_timezone = conf.value except: pass try: conf = ModuleSetting.get('default_timezone', user=user)[0] default_timezone = conf.value except Exception: default_timezone = settings.ANAF_SERVER_TIMEZONE[default_timezone][0] all_timezones = settings.ANAF_SERVER_TIMEZONE title = all_timezones[int(default_timezone)][1] GMT = title[4:10] # with sign e.g. +06:00 sign = GMT[0:1] # + or - hours = int(GMT[1:3]) # e.g. 06 mins = int(GMT[4:6]) now = datetime.now() if value: if sign == "-": value = value - timedelta(hours=hours, minutes=mins) now = now - timedelta(hours=hours, minutes=mins) else: value = value + timedelta(hours=hours, minutes=mins) now = now + timedelta(hours=hours, minutes=mins) if isinstance(value, timedelta): delta = value elif isinstance(value, datetime): delta = now - value else: delta = None if delta: if delta.days > 6: # May 15, 17:55 month = None if value.strftime("%b") == 'Jan': month = _("Jan") elif value.strftime("%b") == 'Feb': month = _("Feb") elif value.strftime("%b") == 'Mar': month = _("Mar") elif value.strftime("%b") == 'Apr': month = _("Apr") elif value.strftime("%b") == 'May': month = _("May") elif value.strftime("%b") == 'Jun': month = _("Jun") elif value.strftime("%b") == 'Jul': month = _("Jul") elif value.strftime("%b") == 'Aug': month = _("Aug") elif value.strftime("%b") == 'Sep': month = _("Sep") elif value.strftime("%b") == 'Oct': month = _("Oct") elif value.strftime("%b") == 'Nov': month = _("Nov") elif value.strftime("%b") == 'Dec': month = _("Dec") return month + value.strftime(" %d, %H:%M") if delta.days > 1: # Wednesday if value.strftime("%A") == 'Monday': return _("Monday") elif value.strftime("%A") == 'Tuesday': return _("Tuesday") elif value.strftime("%A") == 'Wednesday': return _("Wednesday") elif value.strftime("%A") == 'Thursday': return _("Thursday") elif value.strftime("%A") == 'Friday': return _("Friday") elif value.strftime("%A") == 'Saturday': return _("Saturday") elif value.strftime("%A") == 'Sunday': return _("Sunday") elif delta.days == 1: return _("yesterday") # yesterday elif delta.seconds >= 7200: return str(delta.seconds / 3600) + _(" hours ago") # 3 hours ago elif delta.seconds >= 3600: return _("1 hour ago") # 1 hour ago elif delta.seconds > MOMENT: # 29 minutes ago return str(delta.seconds / 60) + _(" minutes ago") else: return _("a moment ago") # a moment ago return djangodate(value) else: return str(value)
def humanize_datetime(context, value): """ Finds the difference between the datetime value given and now() and returns appropriate humanize form """ request = context['request'] user = None if request.user.username: try: user = request.user.get_profile() except: pass # timezone default_timezone = settings.HARDTREE_SERVER_DEFAULT_TIMEZONE try: conf = ModuleSetting.get('default_timezone')[0] default_timezone = conf.value except: pass try: conf = ModuleSetting.get('default_timezone', user=user)[0] default_timezone = conf.value except Exception: default_timezone = getattr(settings, 'HARDTREE_SERVER_TIMEZONE')[default_timezone][0] all_timezones = getattr(settings, 'HARDTREE_SERVER_TIMEZONE', [(1, '(GMT-11:00) International Date Line West')]) title = all_timezones[int(default_timezone)][1] GMT = title[4:10] # with sign e.g. +06:00 sign = GMT[0:1] # + or - hours = int(GMT[1:3]) # e.g. 06 mins = int(GMT[4:6]) now = datetime.now() if value: if sign == "-": value = value - timedelta(hours=hours, minutes=mins) now = now - timedelta(hours=hours, minutes=mins) else: value = value + timedelta(hours=hours, minutes=mins) now = now + timedelta(hours=hours, minutes=mins) if isinstance(value, timedelta): delta = value elif isinstance(value, datetime): delta = now - value else: delta = None if delta: if delta.days > 6: # May 15, 17:55 month = None if value.strftime("%b") == 'Jan': month = _("Jan") elif value.strftime("%b") == 'Feb': month = _("Feb") elif value.strftime("%b") == 'Mar': month = _("Mar") elif value.strftime("%b") == 'Apr': month = _("Apr") elif value.strftime("%b") == 'May': month = _("May") elif value.strftime("%b") == 'Jun': month = _("Jun") elif value.strftime("%b") == 'Jul': month = _("Jul") elif value.strftime("%b") == 'Aug': month = _("Aug") elif value.strftime("%b") == 'Sep': month = _("Sep") elif value.strftime("%b") == 'Oct': month = _("Oct") elif value.strftime("%b") == 'Nov': month = _("Nov") elif value.strftime("%b") == 'Dec': month = _("Dec") return month + value.strftime(" %d, %H:%M") if delta.days > 1: # Wednesday if value.strftime("%A") == 'Monday': return _("Monday") elif value.strftime("%A") == 'Tuesday': return _("Tuesday") elif value.strftime("%A") == 'Wednesday': return _("Wednesday") elif value.strftime("%A") == 'Thursday': return _("Thursday") elif value.strftime("%A") == 'Friday': return _("Friday") elif value.strftime("%A") == 'Saturday': return _("Saturday") elif value.strftime("%A") == 'Sunday': return _("Sunday") elif delta.days == 1: return _("yesterday") # yesterday elif delta.seconds >= 7200: return str(delta.seconds / 3600 ) + _(" hours ago") # 3 hours ago elif delta.seconds >= 3600: return _("1 hour ago") # 1 hour ago elif delta.seconds > MOMENT: return str(delta.seconds/60) + _(" minutes ago") # 29 minutes ago else: return _("a moment ago") # a moment ago return djangodate(value) else: return str(value)
def humanize_datetime(context, value): """ Finds the difference between the datetime value given and now() and returns appropriate humanize form """ request = context["request"] user = None if request.user.username: try: user = request.user.profile except: pass # timezone default_timezone = settings.ANAF_SERVER_DEFAULT_TIMEZONE try: conf = ModuleSetting.get("default_timezone")[0] default_timezone = conf.value except: pass try: conf = ModuleSetting.get("default_timezone", user=user)[0] default_timezone = conf.value except Exception: default_timezone = settings.ANAF_SERVER_TIMEZONE[default_timezone][0] all_timezones = settings.ANAF_SERVER_TIMEZONE title = all_timezones[int(default_timezone)][1] GMT = title[4:10] # with sign e.g. +06:00 sign = GMT[0:1] # + or - hours = int(GMT[1:3]) # e.g. 06 mins = int(GMT[4:6]) now = datetime.now() if value: if sign == "-": value = value - timedelta(hours=hours, minutes=mins) now = now - timedelta(hours=hours, minutes=mins) else: value = value + timedelta(hours=hours, minutes=mins) now = now + timedelta(hours=hours, minutes=mins) if isinstance(value, timedelta): delta = value elif isinstance(value, datetime): delta = now - value else: delta = None if delta: if delta.days > 6: # May 15, 17:55 month = None if value.strftime("%b") == "Jan": month = _("Jan") elif value.strftime("%b") == "Feb": month = _("Feb") elif value.strftime("%b") == "Mar": month = _("Mar") elif value.strftime("%b") == "Apr": month = _("Apr") elif value.strftime("%b") == "May": month = _("May") elif value.strftime("%b") == "Jun": month = _("Jun") elif value.strftime("%b") == "Jul": month = _("Jul") elif value.strftime("%b") == "Aug": month = _("Aug") elif value.strftime("%b") == "Sep": month = _("Sep") elif value.strftime("%b") == "Oct": month = _("Oct") elif value.strftime("%b") == "Nov": month = _("Nov") elif value.strftime("%b") == "Dec": month = _("Dec") return month + value.strftime(" %d, %H:%M") if delta.days > 1: # Wednesday if value.strftime("%A") == "Monday": return _("Monday") elif value.strftime("%A") == "Tuesday": return _("Tuesday") elif value.strftime("%A") == "Wednesday": return _("Wednesday") elif value.strftime("%A") == "Thursday": return _("Thursday") elif value.strftime("%A") == "Friday": return _("Friday") elif value.strftime("%A") == "Saturday": return _("Saturday") elif value.strftime("%A") == "Sunday": return _("Sunday") elif delta.days == 1: return _("yesterday") # yesterday elif delta.seconds >= 7200: return str(delta.seconds / 3600) + _(" hours ago") # 3 hours ago elif delta.seconds >= 3600: return _("1 hour ago") # 1 hour ago elif delta.seconds > MOMENT: # 29 minutes ago return str(delta.seconds / 60) + _(" minutes ago") else: return _("a moment ago") # a moment ago return djangodate(value) else: return str(value)