# -*- coding: utf-8 -*-
from zope.i18nmessageid import MessageFactory as BaseMessageFactory

from vindula.services import config

from Products.Archetypes import atapi
from Products.CMFCore import utils

MessageFactory = BaseMessageFactory('vindula.services')

# first fix the validator
from Products.validation import validation
from validators import UpdateStructureOfService

validation.register(UpdateStructureOfService('isNewStructure'))


def initialize(context):
    """Initializer called when used as a Zope 2 product."""

    content_types, constructors, ftis = atapi.process_types(
        atapi.listTypes(config.PROJECTNAME),
        config.PROJECTNAME)

    for atype, constructor in zip(content_types, constructors):
        utils.ContentInit('%s: %s' % (config.PROJECTNAME, atype.portal_type),
                          content_types=(atype, ),
                          permission=config.ADD_PERMISSIONS[atype.portal_type],
                          extra_constructors=(constructor,),
                          ).initialize(context)
