def get_stats(plone, options, args):
    stats = {plone.id: {}}
    start, end = args

    catalog_stats = get_catalog_stats_per_month(plone, start, end)
    stats[plone.id].update(catalog_stats)

    total_stats = get_contenttype_stats(plone)
    stats[plone.id]['current_totals'] = total_stats
    return stats
def get_catalog_stats_per_month(plone, date_from, date_to):
    stats_by_month = {}
    date_from = datetime.strptime(date_from, '%Y-%m').date()
    date_to = datetime.strptime(date_to, '%Y-%m').date()

    date_from = YearMonth(date_from.year, date_from.month)
    date_to = YearMonth(date_to.year, date_to.month)

    for rng_start, rng_end in itermonthrange(date_from, date_to):
        daterange = (
            datetime(rng_start.year, rng_start.month, 1, 0, 0),
            datetime(rng_end.year, rng_end.month, 1, 0, 0),
        )

        month_key = '%s-%s' % (rng_start.year, rng_start.month)
        print "Querying contenttype stats for %s..." % month_key
        catalog_stats = get_contenttype_stats(
            plone, daterange=daterange)

        stats_by_month[month_key] = catalog_stats

    return stats_by_month
def get_catalog_stats(plone):
    catalog_stats = get_contenttype_stats(plone)
    return catalog_stats