def __iter__(self): for item in self.previous: path = item['_path'] nitf = self.context.unrestrictedTraverse(path, None) if not INITF.providedBy(nitf): # path does not exist or not a NITF yield item continue path = item['_from'] newsitem = self.context.unrestrictedTraverse(path, None) if not IATNewsItem.providedBy( newsitem): # path does not exist or not a News Item yield item continue # delete News Item and replace NITF UUID to assure link integrity id = newsitem.getId() uuid = newsitem.UID() folder = newsitem.aq_parent # FIXME: this seems to be trigering manage_beforeDelete in # Archetypes/Referenceable.py removing News Item object references # before we replace them with the new NITF news article object folder.manage_delObjects([id]) folder.manage_renameObject(nitf.getId(), id) IMutableUUID(nitf).set(uuid) zope.event.notify(ObjectModifiedEvent(nitf)) yield item
def __iter__(self): for item in self.previous: path = item['_path'] nitf = self.context.unrestrictedTraverse(path, None) if not INITF.providedBy(nitf): # path does not exist or not a NITF yield item; continue path = item['_from'] newsitem = self.context.unrestrictedTraverse(path, None) if not IATNewsItem.providedBy(newsitem): # path does not exist or not a News Item yield item; continue # delete News Item and replace NITF UUID to assure link integrity id = newsitem.getId() uuid = newsitem.UID() folder = newsitem.aq_parent # FIXME: this seems to be trigering manage_beforeDelete in # Archetypes/Referenceable.py removing News Item object references # before we replace them with the new NITF news article object folder.manage_delObjects([id]) folder.manage_renameObject(nitf.getId(), id) IMutableUUID(nitf).set(uuid) zope.event.notify(ObjectModifiedEvent(nitf)) yield item
def sendnews(obj, event): """send obj's content as message of the Wechat""" from my315ok.wechat.interfaces import ISendCapable if not(ISendCapable.providedBy(obj)): from zope.interface import alsoProvides alsoProvides(obj,ISendCapable) api = Iweixinapi(obj) # import pdb # pdb.set_trace() # if news item create articles data (IATNewsItem) if IATNewsItem.providedBy(obj) or IATDocument.providedBy(obj): at = Content(api,obj) data = {} try: followers = api.get_followers()['data']['openid'] except: raise Exception("some error") data["touser"] = followers # data["mpnews"] = newsdic data["mpnews"] = at.upload_news() data["msgtype"] = "mpnews" api.send_by_openid(data) elif IATDocument.providedBy(obj): text = obj.getText() try: followers = api.get_followers()['data']['openid'] except: raise Exception("some error") for toid in followers: api.send_text_message(toid,text) # if is dexterity content object elif Iproduct.providedBy(obj): at = DexterityItem(api,obj) data = {} try: followers = api.get_followers()['data']['openid'] except: raise Exception("some error") data["touser"] = followers data["mpnews"] = at.upload_news() data["msgtype"] = "mpnews" api.send_by_openid(data) elif Iproductfolder.providedBy(obj): atnews = DexterityContainer(api,obj) data = {} try: followers = api.get_followers()['data']['openid'] except: raise Exception("some error") data["touser"] = followers data["mpnews"] = atnews.upload_news() data["msgtype"] = "mpnews" api.send_by_openid(data) else: pass
def enabled(self): if IFeatureImageViewletDisabled.providedBy(self.context): return False if IATNewsItem.providedBy(self.context): return False if IATFolder.providedBy(self.context): return False if IRTVideo.providedBy(self.context): return False if IFeaturable.providedBy(self.context): if self.get_feature_image(): return True return False
def fields(self): image_field = [ # add your extension fields here ExtensionBlobImageField('image', required = 0, languageIndependent = True, storage = atapi.AttributeStorage(), widget=ExtensionBlobImageField._properties['widget']( label=_('Image'), ) ), ] image_caption_field = [ ExtensionStringField('imageCaption', required = 0, languageIndependent = False, storage = atapi.AttributeStorage(), widget=atapi.StringField._properties['widget']( label=_('Image Caption') ) ), ] fields = [ ExtensionStringField('imageCopyright', required = 0, languageIndependent = False, storage = atapi.AttributeStorage(), widget=atapi.StringField._properties['widget']( label=_('Image Copyright') ) ), ExtensionBooleanField('is_featured', schemata='settings', languageIndependent = 1, widget=atapi.BooleanField._properties['widget']( label=_('Is Featured'), description=_(u'Feature this item') ) ), ExtensionBooleanField('feature_hide_image', schemata='settings', languageIndependent = 1, widget=atapi.BooleanField._properties['widget']( label=_('Hide image from displaying in feature listings'), ) ) ] if IATNewsItem.providedBy(self.context): return fields if IRTVideo.providedBy(self.context): return image_caption_field + fields return image_field + image_caption_field + fields
def pushSelfWeixin(obj, event): """send obj's content as message of the Wechat to myself followers""" from my315ok.wechat.interfaces import ISendAllCapable import time if not(ISendAllCapable.providedBy(obj)): from zope.interface import alsoProvides alsoProvides(obj,ISendAllCapable) # import pdb # pdb.set_trace() pm = getToolByName(obj, "portal_membership") member = pm.getAuthenticatedMember() member_id = member.getId() # catalog = getToolByName(obj, "portal_catalog") # memberbrains = catalog(object_provides=IMember.__identifier__,email=member_id) memberbrains = getAllMember(obj) if len(memberbrains) ==0:return for bn in memberbrains: if bn.email == member_id:break member = bn.getObject() if IATNewsItem.providedBy(obj) or IATDocument.providedBy(obj): api = queryMultiAdapter((obj, member), IweixinapiMember) if api == None: return atnews = Content(api,obj) data = {} try: followers = api.get_followers()['data']['openid'] except: raise Exception("some error") data["touser"] = followers data["mpnews"] = atnews.upload_news() data["msgtype"] = "mpnews" api.send_by_openid(data) time.sleep(5) elif IATDocument.providedBy(obj): # for member in getAllMember(obj): # # member = member.getObject() api = queryMultiAdapter((obj, member), IweixinapiMember) if api == None: return text = obj.getText() try: followers = self.api.get_followers()['data']['openid'] except: raise Exception("some error") for toid in followers: self.api.send_text_message(toid,text) # if is dexterity content object elif Iproduct.providedBy(obj): # for member in getAllMember(obj): # # member = member.getObject() api = queryMultiAdapter((obj, member), IweixinapiMember) if api == None: return atnews = DexterityItem(api,obj) data = {} try: followers = api.get_followers()['data']['openid'] except: raise Exception("some error") data["touser"] = followers data["mpnews"] = atnews.upload_news() data["msgtype"] = "mpnews" api.send_by_openid(data) elif Iproductfolder.providedBy(obj): # for member in getAllMember(obj): # # member = member.getObject() api = queryMultiAdapter((obj, member), IweixinapiMember) if api == None: return atnews = DexterityContainer(api,obj) data = {} try: followers = api.get_followers()['data']['openid'] except: raise Exception("some error") data["touser"] = followers data["mpnews"] = atnews.upload_news() data["msgtype"] = "mpnews" api.send_by_openid(data) else: pass
def pushWeixin(obj, event): """send obj's content as message of the Wechat""" from my315ok.wechat.interfaces import ISendAllCapable import time if not(ISendAllCapable.providedBy(obj)): from zope.interface import alsoProvides alsoProvides(obj,ISendAllCapable) if IATNewsItem.providedBy(obj): for member in getAllMember(obj): # import pdb # pdb.set_trace() member = member.getObject() api = queryMultiAdapter((obj, member), IweixinapiMember) if api == None: break atnews = Content(api,obj) data = {} try: followers = api.get_followers()['data']['openid'] except: raise Exception("some error") data["touser"] = followers data["mpnews"] = atnews.upload_news() data["msgtype"] = "mpnews" api.send_by_openid(data) time.sleep(5) elif IATDocument.providedBy(obj): for member in getAllMember(obj): member = member.getObject() api = queryMultiAdapter((obj, member), IweixinapiMember) if api == None: break text = obj.getText() try: followers = self.api.get_followers()['data']['openid'] except: raise Exception("some error") for toid in followers: self.api.send_text_message(toid,text) # if is dexterity content object elif Iproduct.providedBy(obj): for member in getAllMember(obj): member = member.getObject() api = queryMultiAdapter((obj, member), IweixinapiMember) if api == None: break atnews = DexterityItem(api,obj) data = {} try: followers = api.get_followers()['data']['openid'] except: raise Exception("some error") data["touser"] = followers data["mpnews"] = atnews.upload_news() data["msgtype"] = "mpnews" api.send_by_openid(data) elif Iproductfolder.providedBy(obj): for member in getAllMember(obj): member = member.getObject() api = queryMultiAdapter((obj, member), IweixinapiMember) if api == None: break atnews = DexterityContainer(api,obj) data = {} try: followers = api.get_followers()['data']['openid'] except: raise Exception("some error") data["touser"] = followers data["mpnews"] = atnews.upload_news() data["msgtype"] = "mpnews" api.send_by_openid(data) else: pass