def inventory_entry_list(context, data_dict): '''Return a list of inventory entries. :param name: organization name :type name: string :rtype: list of dictionaries ''' # TODO @palcu: define this # check_access('inventory_manage', context, data_dict) model = context['model'] name = get_or_bust(data_dict, 'name') organization = model.Group.get(name) if not organization: raise ObjectNotFound('Organization was not found') entries = [ table_dictize(entry, context) for entry in organization.inventory_entries ] for entry in entries: entry['next_deadline_timestamp'] = None if entry['last_added_dataset_timestamp']: last_added = _datestamp_to_datetime( entry['last_added_dataset_timestamp']) delta = timedelta(days=entry['recurring_interval']) entry['next_deadline_timestamp'] = last_added + delta return entries
def _render_datetime(self, datetime_, date_format=None, with_hours=False): datetime_ = helpers._datestamp_to_datetime(datetime_) if datetime_ == None: return False else: jstTime = datetime_ + datetime.timedelta(hours=9) return helpers.render_datetime(jstTime, date_format, with_hours)
def inventory_entry_list(context, data_dict): '''Return a list of inventory entries. :param name: organization name :type name: string :rtype: list of dictionaries ''' # TODO @palcu: define this # check_access('inventory_manage', context, data_dict) model = context['model'] name = get_or_bust(data_dict, 'name') organization = model.Group.get(name) if not organization: raise ObjectNotFound('Organization was not found') entries = [ table_dictize(entry, context) for entry in organization.inventory_entries] for entry in entries: entry['next_deadline_timestamp'] = None if entry['last_added_dataset_timestamp']: last_added = _datestamp_to_datetime(entry['last_added_dataset_timestamp']) delta = timedelta(days=entry['recurring_interval']) entry['next_deadline_timestamp'] = last_added + delta return entries
def render_ar_datetime(datetime_): datetime_ = ckan_helpers._datestamp_to_datetime( convert_iso_string_to_utc(datetime_)) if not datetime_: return '' return _('{day} de {month} de {year}').format(year=datetime_.year, month=datetime_.month, day=datetime_.day)
def render_ar_datetime(datetime_): datetime_ = ckan_helpers._datestamp_to_datetime( convert_iso_string_to_utc(datetime_)) if not datetime_: return '' return _('{day} de {month} de {year}').format( year=datetime_.year, month=formatters._MONTH_FUNCTIONS[datetime_.month - 1]().lower(), day=datetime_.day)
def render_ar_datetime(datetime_): datetime_ = ckan_helpers._datestamp_to_datetime(datetime_) if not datetime_: return '' details = { 'min': datetime_.minute, 'hour': datetime_.hour, 'day': datetime_.day, 'year': datetime_.year, 'month': formatters._MONTH_FUNCTIONS[datetime_.month - 1](), 'timezone': datetime_.tzinfo.zone, } return _('{day} de {month} de {year}').format(**details)
def render_ar_datetime(datetime_): datetime_ = ckan_helpers._datestamp_to_datetime(datetime_) months = [ "Enero", "Febrero", "Marzo", "Abril", "Mayo", "Junio", "Julio", "Agosto", "Septiembre", "Octubre", "Noviembre", "Diciembre" ] if not datetime_: return '' details = { 'min': datetime_.minute, 'hour': datetime_.hour, 'day': datetime_.day, 'year': datetime_.year, 'month': months[datetime_.month - 1], 'timezone': datetime_.tzinfo.zone, } return _('{day} de {month} de {year}').format(**details)
def convert_to_local(self, time, date_format=None, with_hours=False): from_zone = tz.tzutc() to_zone = tz.tzlocal() utc = h._datestamp_to_datetime(str(time)) if not utc: return '' utc = utc.replace(tzinfo=from_zone) time = utc.astimezone(to_zone) # if date_format was supplied we use it if date_format: return time.strftime(date_format) # if with_hours was supplied show them if with_hours: return time.strftime('%B %-d, %Y, %-I:%M %p') else: return time.strftime('%B %-d, %Y')
def render_datetime_ukr(datetime_, date_format=None, with_hours=False): '''Render a datetime object or timestamp string as a localised date or in the requested format. If timestamp is badly formatted, then a blank string is returned. :param datetime_: the date :type datetime_: datetime or ISO string format :param date_format: a date format :type date_format: string :param with_hours: should the `hours:mins` be shown :type with_hours: bool :rtype: string ''' datetime_ = _datestamp_to_datetime(datetime_) if not datetime_: return '' # if date_format was supplied we use it if date_format: # See http://bugs.python.org/issue1777412 if datetime_.year < 1900: year = str(datetime_.year) date_format = re.sub('(?<!%)((%%)*)%y', r'\g<1>{year}'.format(year=year[-2:]), date_format) date_format = re.sub('(?<!%)((%%)*)%Y', r'\g<1>{year}'.format(year=year), date_format) datetime_ = datetime.datetime(2016, datetime_.month, datetime_.day, datetime_.hour, datetime_.minute, datetime_.second) return datetime_.strftime(date_format) return datetime_.strftime(date_format) # the localised date return localised_nice_date(datetime_, with_hours=with_hours)
def _get_latest_update(package_or_resource_dicts): ''' Given a sequence of package and/or resource dicts, returns the most recent update datetime available from them, or None if there is no update datetime found. :param package_or_resource_dicts: a sequence of the package or resource dicts :return: a 2-tuple containing the latest datetime and the dict from which it came, if no times are found then (None, None) is returned ''' # a list of fields on the resource that should contain update dates fields = [u'last_modified', u'revision_timestamp', u'Created'] latest_dict = None latest_date = None for package_or_resource_dict in package_or_resource_dicts: for field in fields: date = h._datestamp_to_datetime(package_or_resource_dict.get(field, None)) if date is not None and (latest_date is None or date > latest_date): latest_date = date latest_dict = package_or_resource_dict return latest_date, latest_dict