python类UTC的实例源码

firehol_blocklists.py 文件源码 项目:Cortex-Analyzers 作者: CERT-BDF 项目源码 文件源码 阅读 25 收藏 0 点赞 0 评论 0
def __init__(self):
        Analyzer.__init__(self)

        # Get config parameters
        self.path = self.getParam('config.blocklistpath', None, 'No path to blocklists provided.')
        self.ignoreolderthandays = self.getParam('config.ignoreolderthandays', 365)
        self.utc = pytz.UTC
        self.now = dt.datetime.now(tz=self.utc)

        # Check if directory exists
        if not os.path.exists(self.path):
            os.mkdir(self.path, 0700)
            # Downloading/updating the list is implemented with an external cronjob which git pulls the repo

        # Read files in the given path and prepare file lists for ip- and netsets
        files = os.listdir(self.path)
        self.ipsets = []
        self.netsets = []
        for file in files:
            if '.ipset' in file:
                self.ipsets.append(file)
            elif '.netset' in file:
                self.netsets.append(file)
tests.py 文件源码 项目:stregsystemet 作者: f-klubben 项目源码 文件源码 阅读 24 收藏 0 点赞 0 评论 0
def test_multibuy_hint_two_buys_applicable(self):
        member = Member.objects.get(username="jokke")
        coke = Product.objects.create(
            name="coke",
            price=100,
            active=True
        )
        with freeze_time(timezone.datetime(2018, 1, 1)) as frozen_time:
            for i in range(1, 3):
                Sale.objects.create(
                    member=member,
                    product=coke,
                    price=100,
                )
                frozen_time.tick()
        give_multibuy_hint, sale_hints = stregsystem_views._multibuy_hint(timezone.datetime(2018, 1, 1, tzinfo=pytz.UTC), member)
        self.assertTrue(give_multibuy_hint)
        self.assertEqual(sale_hints, "{} {}:{}".format("jokke", coke.id, 2))
brokers.py 文件源码 项目:ibstract 作者: jesseliu0 项目源码 文件源码 阅读 16 收藏 0 点赞 0 评论 0
def _hist_data_req_to_args(self, req: object):
        """Convert marketdata.HistDataReq to IB arguments.
        """
        assert req.DataType.upper() in IB_HIST_DATA_TYPES,\
            'Invalid IB data type requested: %s' % req.DataType
        contract = self._hist_data_req_to_contract(req)
        endDateTime = pytz.UTC.normalize(
            req.TimeEnd).strftime('%Y%m%d %H:%M:%S %Z')
        durationStr = timedur_to_IB(req.TimeDur)
        barSizeSetting = barsize_to_IB(req.BarSize)
        whatToShow = req.DataType.upper()
        useRTH = True if barSizeSetting in ('1 day', '1W', '1M') else False
        formatDate = 2  # enforce UTC output
        keepUpToDate = False
        chartOptions = None
        return (contract, endDateTime, durationStr, barSizeSetting, whatToShow,
                useRTH, formatDate, keepUpToDate, chartOptions)
brokers.py 文件源码 项目:ibstract 作者: jesseliu0 项目源码 文件源码 阅读 17 收藏 0 点赞 0 评论 0
def req_hist_data_async(self, *req_list: [object]):
        """
        Concurrently downloads historical market data for multiple requests.
        """
        ibparms_list = (self._hist_data_req_to_args(req) for req in req_list)
        bars_list = await asyncio.gather(*(
            self.reqHistoricalDataAsync(*ibparms)
            for ibparms in ibparms_list))
        df_list = [ib_insync.util.df(bars) for bars in bars_list]
        xchg_tz_list = await asyncio.gather(*(
            self.hist_data_req_timezone(req) for req in req_list))
        blk_list = []
        for req, df, xchg_tz in zip(req_list, df_list, xchg_tz_list):
            _logger.debug(df.iloc[:3])
            if req.BarSize[-1] in ('d', 'W', 'M'):  # not intraday
                dl_tz = xchg_tz  # dates without timezone, init with xchg_tz.
            else:
                dl_tz = pytz.UTC
            blk = MarketDataBlock(df, symbol=req.Symbol, datatype=req.DataType,
                                  barsize=req.BarSize, tz=dl_tz)
            blk.tz_convert(xchg_tz)
            blk_list.append(blk)
        return blk_list
marketdata.py 文件源码 项目:ibstract 作者: jesseliu0 项目源码 文件源码 阅读 25 收藏 0 点赞 0 评论 0
def query_hist_data(
        engine: object, sectype: str, symbol: str, datatype: str, barsize: str,
        start: datetime=None, end: datetime=None) -> MarketDataBlock:
    """Query database on conditions.
    """
    if start is None:
        start = pytz.UTC.localize(datetime(1, 1, 1))
    if end is None:
        end = pytz.UTC.localize(datetime(9999, 12, 31, 23, 59, 59))
    table = _gen_sa_table(sectype)
    stmt = table.select().where(
        and_(
            table.c.Symbol == symbol,
            table.c.DataType == datatype,
            table.c.BarSize == barsize,
            table.c.TickerTime.between(
                start.astimezone(pytz.UTC), end.astimezone(pytz.UTC))
        )
    )
    async with engine.acquire() as conn:
        result = await conn.execute(stmt)
    df = pd.DataFrame(list(result), columns=table.columns.keys())
    blk = MarketDataBlock(df, tz='UTC')
    blk.tz_convert(start.tzinfo)
    return blk
tests.py 文件源码 项目:pyconjp-website 作者: pyconjp 项目源码 文件源码 阅读 21 收藏 0 点赞 0 评论 0
def get_signature(self, uri, method='GET', body=''):
        """Return a dictionary with the API key and API get_signature
        to be sent for the given request."""
        # What time is it now?
        timestamp = timegm(datetime.datetime.now(tz=pytz.UTC).timetuple())

        # Calculate the base string to use for the signature.
        base_string = unicode(''.join((
            self.auth_key.secret,
            unicode(timestamp),
            method.upper(),
            uri,
            body,
        ))).encode('utf-8')

        # Return a dictionary with the headers to send.
        return {
            'HTTP_X_API_KEY': self.auth_key.auth_key,
            'HTTP_X_API_SIGNATURE': sha1(base_string).hexdigest(),
            'HTTP_X_API_TIMESTAMP': timestamp,
        }
schema.py 文件源码 项目:lagendacommun 作者: ecreall 项目源码 文件源码 阅读 22 收藏 0 点赞 0 评论 0
def get_dates_query(args):
    dates = args.get('dates', [])
    query = None
    for date in dates:
        temporal_filter = {
            'temporal_filter': {
                'start_end_dates': {
                    'start_date': date,  # will be transformed to 00:00:00 UTC
                    'end_date': date  # will be transformed to 23:59:59 UTC
                    }
                }
            }
        query = or_op(
            query, start_end_date_query(
                None, **temporal_filter))

    return query
schema.py 文件源码 项目:lagendacommun 作者: ecreall 项目源码 文件源码 阅读 25 收藏 0 点赞 0 评论 0
def get_start_end_dates(args):
    dates = args.get('dates')
    if dates:
        start, end = dates[0], dates[-1]
    else:
        start, end = get_dates_range(args)

    if start:
        start = datetime.datetime.combine(
            start,
            datetime.time(0, 0, 0, tzinfo=pytz.UTC))

    if end:
        end = datetime.datetime.combine(
            end,
            datetime.time(23, 59, 59, tzinfo=pytz.UTC))

    return start, end
schema.py 文件源码 项目:lagendacommun 作者: ecreall 项目源码 文件源码 阅读 21 收藏 0 点赞 0 评论 0
def get_dates_range_query(args):
    dates = args.get('datesRange')
    if not dates:
        return None

    start, end = get_dates_range(args)
    temporal_filter = {
        'temporal_filter': {
            'start_end_dates': {
                'start_date': start,  # will be transformed to 00:00:00 UTC
                'end_date': end  # will be transformed to 23:59:59 UTC
                }
            }
        }
    query = start_end_date_query(None, **temporal_filter)
    return query
classification.py 文件源码 项目:lagendacommun 作者: ecreall 项目源码 文件源码 阅读 35 收藏 0 点赞 0 评论 0
def _init_values(self, **args):
        #get validated data (Filter)
        start_end_dates = args.get('temporal_filter', {}).get('start_end_dates', {})
        if self.start_value is None:
            start_date = start_end_dates.get('start_date', None)
            self.start_value = ((start_date is not None) and start_date) or\
                datetime.datetime.now(tz=pytz.UTC)
            self.start_value = datetime.datetime.combine(
                self.start_value,
                datetime.time(0, 0, 0, tzinfo=pytz.UTC))

        if self.end_value is None:
            end_date = start_end_dates.get('end_date', None)
            if end_date:
                self.end_value = datetime.datetime.combine(
                    end_date,
                    datetime.time(23, 59, 59, tzinfo=pytz.UTC))
            elif 'ignore_end_date' not in args:
                site = get_site_folder(True)
                days_visibility = getattr(site, 'days_visibility',
                                          DEFAULT_DAYS_VISIBILITY)
                default_date = datetime.timedelta(days_visibility-1) + \
                    self.start_value
                self.end_value = default_date
test_french_dates_parser.py 文件源码 项目:lagendacommun 作者: ecreall 项目源码 文件源码 阅读 20 收藏 0 点赞 0 评论 0
def test_list_date_to_dates(self):
        dates_str = "Du 7 juin 2016 de 12h10 à 13h30 au 30 juin 2016 de 10h10 à 11h25"
        dates = self.get_dates_intervals(dates_str)
        self.assertEqual(len(dates), 2)
        self.assertIn('201667', dates)
        self.assertIn('2016630', dates)
        d1 = dates['201667']
        d2 = dates['2016630']
        self.assertEqual(len(d1), 1)
        self.assertEqual(len(d2), 1)
        d1_start = d1[0]['start']
        d1_end = d1[0]['end']
        d2_start = d2[0]['start']
        d2_end = d2[0]['end']
        self.assertEqual(d1_start, datetime.datetime(2016, 6, 7, 12, 10, tzinfo=pytz.UTC))
        self.assertEqual(d1_end, datetime.datetime(2016, 6, 7, 13, 30, tzinfo=pytz.UTC))
        self.assertEqual(d2_start, datetime.datetime(2016, 6, 30, 10, 10, tzinfo=pytz.UTC))
        self.assertEqual(d2_end, datetime.datetime(2016, 6, 30, 11, 25, tzinfo=pytz.UTC))
see_files.py 文件源码 项目:lagendacommun 作者: ecreall 项目源码 文件源码 阅读 20 收藏 0 点赞 0 评论 0
def update(self):
        self.execute(None)
        objects = self.context.files
        default = datetime.datetime.now(tz=pytz.UTC)
        objects = sorted(objects,
                         key=lambda e: getattr(e, 'modified_at', default),
                         reverse=True)
        batch = Batch(objects, self.request, default_size=BATCH_DEFAULT_SIZE)
        batch.target = "#results_files"
        len_result = batch.seqlen
        result_body = []
        for obj in batch:
            object_values = {'object': obj}
            body = self.content(args=object_values,
                                template=obj.templates['default'])['body']
            result_body.append(body)

        result = {}
        values = {'bodies': result_body,
                  'length': len_result,
                  'batch': batch}
        body = self.content(args=values, template=self.template)['body']
        item = self.adapt_item(body, self.viewid)
        result['coordinates'] = {self.coordinates: [item]}
        return result
see_definitions.py 文件源码 项目:lagendacommun 作者: ecreall 项目源码 文件源码 阅读 19 收藏 0 点赞 0 评论 0
def update(self):
        self.execute(None)
        root = getSite()
        objects = root.services_definition
        default = datetime.datetime.now(tz=pytz.UTC)
        objects = sorted(objects,
                         key=lambda e: getattr(e, 'modified_at', default),
                         reverse=True)
        result_servicesbody = []
        for obj in objects:
            object_values = {'object': obj,
                             'state': None}
            body = self.content(args=object_values,
                                template=obj.templates['default'])['body']
            result_servicesbody.append(body)

        result = {}
        values = {
                'services': result_servicesbody,
                'row_len_services': math.ceil(len(objects)/4)
               }
        body = self.content(args=values, template=self.template)['body']
        item = self.adapt_item(body, self.viewid)
        result['coordinates'] = {self.coordinates: [item]}
        return result
__init__.py 文件源码 项目:lagendacommun 作者: ecreall 项目源码 文件源码 阅读 19 收藏 0 点赞 0 评论 0
def get_user_alerts(self):
        user = get_current()
        site = get_site_folder(True, self.request)
        objects = getattr(user, 'alerts', [])
        objects = [a for a in objects if a.__parent__ is site]
        now = datetime.datetime.now(tz=pytz.UTC)
        objects = sorted(
            objects,
            key=lambda e: getattr(e, 'modified_at', now),
            reverse=True)
        result_body = []
        for obj in objects:
            render_dict = {
                'object': obj,
                'current_user': user
            }
            body = self.content(args=render_dict,
                                template=obj.get_templates()['small'])['body']
            result_body.append(body)

        values = {'bodies': result_body}
        body = self.content(args=values, template=self.alert_template)['body']
        return {'body': body}
data_manager.py 文件源码 项目:lagendacommun 作者: ecreall 项目源码 文件源码 阅读 26 收藏 0 点赞 0 评论 0
def review_deserializer(args):
    artists = args.get('artists', [])
    args['artists'] = merge_artists(artists)
    zone = pytz.UTC.zone
    if 'created_at' in args:
        args['created_at'] = datetime.datetime.strptime(
            args['created_at'], '%Y-%m-%d %H:%M:%S %Z (%z)')
        if not args['created_at'].tzinfo or \
           args['created_at'].tzinfo.tzname(args['created_at']) != zone:
            args['created_at'] = args['created_at'].replace(tzinfo=pytz.UTC)

    if 'modified_at' in args:
        args['modified_at'] = datetime.datetime.strptime(
            args['modified_at'], '%Y-%m-%d %H:%M:%S %Z (%z)')
        if not args['modified_at'].tzinfo or \
           args['modified_at'].tzinfo.tzname(args['modified_at']) != zone:
            args['modified_at'] = args['modified_at'].replace(tzinfo=pytz.UTC)

    return args
data_manager.py 文件源码 项目:lagendacommun 作者: ecreall 项目源码 文件源码 阅读 20 收藏 0 点赞 0 评论 0
def cinema_review_deserializer(args):
    artists = args.get('artists', [])
    args['artists'] = merge_artists(artists)
    directors = args.get('directors', [])
    args['directors'] = merge_artists(directors)
    for director in args['directors']:
        director.is_director = True

    zone = pytz.UTC.zone
    if 'created_at' in args:
        args['created_at'] = datetime.datetime.strptime(
            args['created_at'], '%Y-%m-%d %H:%M:%S %Z (%z)')
        if not args['created_at'].tzinfo or \
           args['created_at'].tzinfo.tzname(args['created_at']) != zone:
            args['created_at'] = args['created_at'].replace(tzinfo=pytz.UTC)

    if 'modified_at' in args:
        args['modified_at'] = datetime.datetime.strptime(
            args['modified_at'], '%Y-%m-%d %H:%M:%S %Z (%z)')
        if not args['modified_at'].tzinfo or \
           args['modified_at'].tzinfo.tzname(args['modified_at']) != zone:
            args['modified_at'] = args['modified_at'].replace(tzinfo=pytz.UTC)

    return args
ical_date_utility.py 文件源码 项目:lagendacommun 作者: ecreall 项目源码 文件源码 阅读 20 收藏 0 点赞 0 评论 0
def generate_ical_rec(event, schedule, start_date,
                      end_date, to_exclude=[], tzinfo=pytz.UTC):
    ical_events = []
    periods = list_date_to_dates(start_date, True, tzinfo)[1]
    end_dates = list_date_to_dates(end_date, True, tzinfo)[1]
    until = end_dates[-1]['end']
    exdate = [datetime.datetime(l[0], l[1], l[2], tzinfo=tzinfo)
              for l in to_exclude]
    for index, period in enumerate(periods):
        ical_event = Event()
        ical_event.add('summary', event.title)
        ical_event.add('dtstart', period['start'])
        ical_event.add('dtend', period['end'])
        ical_event.add('rrule', {'freq': 'daily', 'until': until})
        if exdate:
            ical_event.add('exdate', exdate)

        ical_event['uid'] = str(get_oid(schedule)) + str(index) + '/' + 'lac.org'
        ical_events.append(ical_event)

    return ical_events
behaviors.py 文件源码 项目:lagendacommun 作者: ecreall 项目源码 文件源码 阅读 24 收藏 0 点赞 0 评论 0
def start(self, context, request, appstruct, **kw):
        changepassword = appstruct['change_password']['changepassword']
        current_user_password = appstruct['change_password']['currentuserpassword']
        user = get_current()
        if changepassword and user.check_password(current_user_password):
            password = appstruct['change_password']['password']
            context.set_password(password)

        context.set_title()
        name = name_chooser(name=context.title)
        if not context.name.startswith(name):
            principals = find_service(getSite(), 'principals')
            context.name = name_chooser(principals['users'], name=name)

        context.modified_at = datetime.datetime.now(tz=pytz.UTC)
        context.reindex()
        request.registry.notify(ActivityExecuted(self, [context], user))
        return {}
behaviors.py 文件源码 项目:lagendacommun 作者: ecreall 项目源码 文件源码 阅读 29 收藏 0 点赞 0 评论 0
def start(self, context, request, appstruct, **kw):
        root = getSite()
        sites = root.site_folders
        now = datetime.datetime.combine(
            datetime.datetime.utcnow(),
            datetime.time(23, 59, 59, tzinfo=pytz.UTC))
        for site in sites:
            automatic_newsletters = [n for n in site.newsletters
                                     if getattr(n, 'recurrence', False) and
                                     now >= n.get_sending_date() and
                                     n.can_send()]
            for newsletter in automatic_newsletters:
                send_newsletter_content(newsletter, request)
                log.info('Send: '+site.title+'->'+newsletter.title)

        return {}
behaviors.py 文件源码 项目:lagendacommun 作者: ecreall 项目源码 文件源码 阅读 21 收藏 0 点赞 0 评论 0
def start(self, context, request, appstruct, **kw):
        user = get_current()
        artists, new_artists = extract_artists(
            appstruct.get('artists', []), request)
        context.setproperty('artists', artists)
        context.modified_at = datetime.datetime.now(tz=pytz.UTC)
        context.set_metadata(appstruct)
        if 'published' in context.state:
            not_published_artists = [a for a in context.artists
                                     if 'published' not in a.state]
            for artist in not_published_artists:
                publish_artist(artist, request, user)

        context.reindex()
        new_objects = new_artists
        new_objects.append(context)
        request.registry.notify(ActivityExecuted(self, new_objects, user))
        return {}
behaviors.py 文件源码 项目:lagendacommun 作者: ecreall 项目源码 文件源码 阅读 25 收藏 0 点赞 0 评论 0
def start(self, context, request, appstruct, **kw):
        site_services = context.get_all_services(validate=False,
                                                 delegation=False)
        user = get_current()
        if 'moderation' in site_services:
            author = getattr(context, 'author', user)
            moderations = site_services['moderation']
            for moderation in moderations:
                moderation.unsubscribe(context, author, service=moderation)

            remove_empty_orders(author)

        context.sumited_to = PersistentList([])
        context.state = PersistentList(['editable'])
        context.modified_at = datetime.datetime.now(tz=pytz.UTC)
        context.reindex()
        request.registry.notify(ActivityExecuted(self, [context], user))
        return {}
behaviors.py 文件源码 项目:lagendacommun 作者: ecreall 项目源码 文件源码 阅读 33 收藏 0 点赞 0 评论 0
def start(self, context, request, appstruct, **kw):
        artists, new_artists = extract_artists(
            appstruct.pop('artists', []), request)
        directors, new_directors = extract_artists(
            appstruct.pop('directors', []),
            request, is_directors=True)
        appstruct.pop('artists_ids')
        appstruct.pop('directors_ids')
        if appstruct.get('picture', None) is not None and \
            OBJECT_DATA in appstruct['picture']:
            appstruct['picture'] = appstruct['picture'][OBJECT_DATA]
            if not getattr(appstruct['picture'], '__name__', None):
                appstruct['picture'].__name__ = 'picture'

        context.set_metadata(appstruct)
        context.set_data(appstruct)
        context.setproperty('artists', artists)
        context.setproperty('directors', directors)
        context.modified_at = datetime.datetime.now(tz=pytz.UTC)
        context.reindex()
        objects = [context]
        objects.extend(new_artists)
        objects.extend(new_directors)
        request.registry.notify(ActivityExecuted(self, objects, get_current()))
        return {}
behaviors.py 文件源码 项目:lagendacommun 作者: ecreall 项目源码 文件源码 阅读 28 收藏 0 点赞 0 评论 0
def start(self, context, request, appstruct, **kw):
        user = get_current()
        if not hasattr(user, 'customeraccount') and\
           context.author:
            user = context.author

        if '_csrf_token_' in appstruct:
            appstruct.pop('_csrf_token_')

        service = self.service(**appstruct)
        service.configure(context, user)
        service.subscribe(context, user)
        service.setproperty('delegate', user)
        context.modified_at = datetime.datetime.now(tz=pytz.UTC)
        service.reindex()
        return {}
behaviors.py 文件源码 项目:lagendacommun 作者: ecreall 项目源码 文件源码 阅读 25 收藏 0 点赞 0 评论 0
def start(self, context, request, appstruct, **kw):
        user = get_current()
        if not hasattr(user, 'customeraccount') and\
           context.customer:
            user = context.customer.user

        if '_csrf_token_' in appstruct:
            appstruct.pop('_csrf_token_')

        service = self.service(**appstruct)
        service.configure(context, user)
        service.subscribe(context, user)
        service.setproperty('delegate', user)
        context.modified_at = datetime.datetime.now(tz=pytz.UTC)
        service.reindex()
        return {}
behaviors.py 文件源码 项目:lagendacommun 作者: ecreall 项目源码 文件源码 阅读 28 收藏 0 点赞 0 评论 0
def start(self, context, request, appstruct, **kw):
        user = get_current()
        if not hasattr(user, 'customeraccount') and\
           context.customer:
            user = context.customer.user

        if '_csrf_token_' in appstruct:
            appstruct.pop('_csrf_token_')

        service = self.service(**appstruct)
        service.configure(context, user)
        service.subscribe(context, user)
        service.setproperty('delegate', user)
        context.modified_at = datetime.datetime.now(tz=pytz.UTC)
        service.reindex()
        return {}
behaviors.py 文件源码 项目:lagendacommun 作者: ecreall 项目源码 文件源码 阅读 24 收藏 0 点赞 0 评论 0
def renew_state_validation(process, context):
    type_ = context.subscription.get('subscription_type')
    if type_ != 'subscription':
        return False

    if context.is_expired():
        return True

    end_date = getattr(context, 'end_date', None)
    if end_date:
        now = datetime.datetime.now(tz=pytz.UTC)
        alert_date = (end_date - datetime.timedelta(
            days=2)).replace(tzinfo=pytz.UTC)
        return now >= alert_date

    return False
behaviors.py 文件源码 项目:lagendacommun 作者: ecreall 项目源码 文件源码 阅读 25 收藏 0 点赞 0 评论 0
def start(self, context, request, appstruct, **kw):
        context.state = PersistentList(['active'])
        today = datetime.datetime.now(tz=pytz.UTC)
        end_date = context.end_date.replace(tzinfo=pytz.UTC)
        start_date = today if today > end_date else end_date
        context.end_date = (datetime.timedelta(days=30) + \
            start_date).replace(tzinfo=pytz.UTC)
        context.modified_at = today
        if isinstance(context.perimeter, SiteFolder):
            grant_roles(
                context.delegate,
                roles=(('Moderator', context.perimeter),))
            context.delegate.reindex()

        context.reindex()
        return {}
behaviors.py 文件源码 项目:lagendacommun 作者: ecreall 项目源码 文件源码 阅读 29 收藏 0 点赞 0 评论 0
def start(self, context, request, appstruct, **kw):
        context.modified_at = datetime.datetime.now(tz=pytz.UTC)
        if isinstance(context.perimeter, SiteFolder):
            revoke_roles(
                context.delegate,
                roles=(('Moderator', context.perimeter),),
                root=context.perimeter)
            context.delegate.reindex()
            context.delegate = appstruct['delegate']
            grant_roles(
                context.delegate,
                roles=(("Moderator", context.perimeter),))
        else:
            context.delegate = appstruct['delegate']

        context.delegate.reindex()
        context.reindex()
        return {}
behaviors.py 文件源码 项目:lagendacommun 作者: ecreall 项目源码 文件源码 阅读 26 收藏 0 点赞 0 评论 0
def start(self, context, request, appstruct, **kw):
        site_folder = appstruct['_object_data']
        site_folder.modified_at = datetime.datetime.now(tz=pytz.UTC)
        site_folder.filters = PersistentList(
            getattr(site_folder, 'filters', []))
        filters = getattr(site_folder, 'filters', [])
        root = getSite()
        for filter_ in filters:
            sources = filter_.get('other_filter', {}).get('sources', [])
            if sources and 'self' in sources:
                sources_ = list(sources)
                sources_.remove('self')
                sources_.append(str(get_oid(site_folder)))
                filter_['other_filter']['sources'] = list(set(sources_))

            tree = filter_.get('metadata_filter', {}).get('tree', None)
            if tree:
                site_folder.merge_tree(tree)
                root.merge_tree(tree)

        site_folder.reindex()
        return {}
behaviors.py 文件源码 项目:lagendacommun 作者: ecreall 项目源码 文件源码 阅读 24 收藏 0 点赞 0 评论 0
def start(self, context, request, appstruct, **kw):
        site_services = context.get_all_services(validate=False,
                                                 delegation=False)
        user = get_current()
        if 'moderation' in site_services:
            author = getattr(context, 'author', user)
            moderations = site_services['moderation']
            for moderation in moderations:
                moderation.unsubscribe(context, author, service=moderation)

            remove_empty_orders(author)

        context.sumited_to = PersistentList([])
        context.state = PersistentList(['editable'])
        context.modified_at = datetime.datetime.now(tz=pytz.UTC)
        context.reindex()
        request.registry.notify(ActivityExecuted(self, [context], user))
        return {}


问题


面经


文章

微信
公众号

扫码关注公众号