Exemplo n.º 1
0
    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
Exemplo n.º 2
0
    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
Exemplo n.º 3
0
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
Exemplo n.º 5
0
    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
Exemplo n.º 6
0
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             
        
Exemplo n.º 7
0
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