1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69
| from Acquisition import Implicit
from Globals import Persistent
from AccessControl.Role import RoleManager
import Globals
import AccessControl
from OFS.ObjectManager import ObjectManager
from OFS.PropertyManager import PropertyManager
from BannerAdvert import *
from OFS.SimpleItem import Item
class BannerDepository(Implicit, Persistent, RoleManager, Item, ObjectManager, PropertyManager):
"""Object representing a bannerdepository"""
meta_type='BannerDepository'
manage_BannerAdvert_addForm = manage_BannerAdvert_addForm
manage_BannerAdvert_add = manage_BannerAdvert_add
# Pour n'afficher que l'objet BannerAdvert dans la liste des objets disponibles, j'ai surcharge la methode all_meta_types() de la classe ObjectManager de cette maniere :
all_meta_types = meta_types = (
{'name': 'Banner Advert', 'action': 'manage_BannerAdvert_addForm'},
)
index_html = Globals.DTMLFile('dtml/index_html_depository', globals())
banner_stats = Globals.DTMLFile('dtml/banner_stats_depository', globals())
pop_up_html = Globals.DTMLFile('dtml/pop_up_html_depository', globals())
redirect = Globals.DTMLFile('dtml/redirect_depository', globals())
show_banner = Globals.DTMLFile('dtml/show_banner_depository', globals())
show_stats = Globals.DTMLFile('dtml/show_stats_depository', globals())
test = Globals.DTMLFile('dtml/test_depository', globals())
# Management Screens
#the standard management view defined by RoleManager is Security and those defined by Item are Undo and Ownership
manage_options=(
{'label':'Contents', 'action':'manage_main', 'help':('BannerAdManager','BannerDepository.stx')}, # manage_main provient de ObjectManager
{'label':'View', 'action':'index_html'},
{'label':'Test', 'action':'test'},
{'label':'Show Depository Stats', 'action':'show_stats','help':('BannerAdManager','BannerStats.stx')},
{'label': 'Properties', 'action': 'manage_propertiesForm','help':('BannerAdManager','BannerBepositoryProperties.stx')}, # manage_propertiesForm provient de PropertyManager
) + Item.manage_options + RoleManager.manage_options
# Properties
_properties=(
{'id':'new_window', 'type': 'boolean', 'mode':'w'},
{'id':'pop_up', 'type': 'boolean', 'mode':'w'},
)
# pour que les proprietes soient prises en compte, il faut les initailiser.
new_window = 0
pop_up = 0
__ac_permissions__ =(
('Manage properties', ('manage_addProperty','manage_editProperties', 'manage_delProperties', 'manage_changeProperties',)),
)
# Security
security = AccessControl.ClassSecurityInfo()
def __init__(self, id):
self.id = id
manage_BannerDepository_addForm = Globals.DTMLFile('dtml/addBannerDepositoryForm', globals())
def manage_BannerDepository_add(self, id='', title='', REQUEST=None):
""" Adds a BannerDepository to a folder. """
newBannerDepository = BannerDepository(id)
self._setObject(id, newBannerDepository)
if REQUEST is not None:
return self.manage_main(self, REQUEST) |
Partager