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
Example #2
0
 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
Example #4
0
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)
Example #5
0
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)
Example #6
0
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)
Example #7
0
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)
Example #8
0
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)
Example #9
0
    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')
Example #10
0
    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')
Example #11
0
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