mirror of
https://github.com/haiwen/seahub.git
synced 2025-09-26 23:34:45 +00:00
Merge branch 'proventa-master'
This commit is contained in:
@@ -242,29 +242,39 @@ def translate_commit_desc_escape(value):
|
|||||||
return return_value
|
return return_value
|
||||||
|
|
||||||
@register.filter(name='translate_seahub_time')
|
@register.filter(name='translate_seahub_time')
|
||||||
def translate_seahub_time(value):
|
def translate_seahub_time(value, autoescape=None):
|
||||||
"""Translate seahub time to human friendly format instead of timestamp"""
|
|
||||||
|
|
||||||
if isinstance(value, int) or isinstance(value, long): # check whether value is int
|
if isinstance(value, int) or isinstance(value, long): # check whether value is int
|
||||||
val_ts = value
|
|
||||||
try:
|
try:
|
||||||
val = datetime.fromtimestamp(val_ts) # convert timestamp to datetime
|
val = datetime.fromtimestamp(value) # convert timestamp to datetime
|
||||||
except ValueError as e:
|
except ValueError as e:
|
||||||
return ""
|
return ""
|
||||||
elif isinstance(value, datetime):
|
elif isinstance(value, datetime):
|
||||||
# FIXME: convert datetime to timestamp may cause problem, need a better way.
|
|
||||||
val_ts = int(time.mktime(value.timetuple()))
|
|
||||||
val = value
|
val = value
|
||||||
else:
|
else:
|
||||||
return value
|
return value
|
||||||
|
|
||||||
limit = 14 * 24 * 60 * 60 # Timestamp with in two weeks will be translated
|
translated_time = translate_seahub_time_str(val)
|
||||||
|
if autoescape:
|
||||||
|
translated_time = escape(translated_time)
|
||||||
|
|
||||||
|
timestring = val.isoformat()
|
||||||
|
titletime = val.strftime("%c")
|
||||||
|
|
||||||
|
time_with_tag = '<time datetime="'+timestring+'" is="relative-time" title="'+titletime+'" >'+translated_time+'</time>'
|
||||||
|
|
||||||
|
return mark_safe(time_with_tag)
|
||||||
|
|
||||||
|
def translate_seahub_time_str(val):
|
||||||
|
"""Convert python datetime to human friendly format."""
|
||||||
|
|
||||||
now = datetime.now()
|
now = datetime.now()
|
||||||
# If current time is less than value, that means clock at user machine is
|
# If current time is less than `val`, that means clock at user machine is
|
||||||
# faster than server, in this case, we just set time description to `just now`
|
# faster than server, in this case, we just set time description to `just now`
|
||||||
if time.mktime(now.timetuple()) < val_ts:
|
if now < val:
|
||||||
return _('Just now')
|
return _('Just now')
|
||||||
|
|
||||||
|
limit = 14 * 24 * 60 * 60 # Timestamp with in two weeks will be translated
|
||||||
|
|
||||||
delta = now - (val - dt.timedelta(0, 0, val.microsecond))
|
delta = now - (val - dt.timedelta(0, 0, val.microsecond))
|
||||||
seconds = delta.seconds
|
seconds = delta.seconds
|
||||||
days = delta.days
|
days = delta.days
|
||||||
|
Reference in New Issue
Block a user