Ejemplo n.º 1
0
 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
Ejemplo n.º 2
0
    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
Ejemplo n.º 3
0
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)
Ejemplo n.º 4
0
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)
Ejemplo n.º 5
0
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)
Ejemplo n.º 6
0
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)
Ejemplo n.º 7
0
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
Ejemplo n.º 8
0
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)
Ejemplo n.º 9
0
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)
Ejemplo n.º 10
0
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)