2009-06-16 4 views
2

Dans ce lien, http://plone.org/documentation/how-to/set-default-datetimefield-current-date-time, il décrit comment faire cela avec de nouveaux attributs de schéma. I pourrait mettre à jour tous les types de contenu dans notre système d'utiliser cette méthode, mais je préférerais quelque chose d'un peu moins de travail, car si je dois changer plusieurs types de contenu, il sera trop facile de faire une erreur.Comment la date et l'heure actuelles de la publication de contenu sont-elles définies par défaut?

Répondre

3

peut-être un js soln? avoir un événement onload qui recherche des widgets datetime par id (ou l'un de ces attributs communs), puis réinitialiser l'heure en fonction de l'heure du navigateur. Vous pouvez filtrer nouveau vs modifier en fonction de si oui ou non un attribut requis non prérempli est encore rempli (c.-à-titre)

+0

Donc, vous voulez dire utiliser un peu de JavaScript par défaut emptyDate champs vides à la date actuelle? Je vais essayer. – pydanny

+0

Cette méthode a fonctionné parfaitement! Entièrement basé sur la vue, je n'ai donc pas eu à modifier plusieurs types de contenu! – pydanny

1

Je pourrais simplement rendre 'publié' l'état de flux de travail par défaut. Cela devrait régler le problème.

+0

Malheureusement, cette solution est inacceptable. Ma tâche consiste à faire de la date de publication par défaut des nouveaux éléments de contenu la date actuelle. Ne pas créer de changement de flux de travail. – pydanny

2

Vous pouvez utiliser archetypes.schemaextender pour modifier ces types avec un adaptateur:

dans votre configuration .zcml

<adapter 
    factory=".adapters.DefaultDateModifier" 
    name="my-package-defaultdate" 
    /> 

dans le adapters.py

class DefaultDateModifier(object): 
    """DefaultDateModifier adapter 
    """ 
    # XXX optionally adapt your content items iface here 
    adapts(ATCTMixin) 
    implements(ISchemaModifier) 

    def fiddle(self, schema): 
     # TODO switch out the default_method here... 
     pass 

    def __init__(self, context): 
     self.context = context 
+0

Comment cela fonctionnerait-il contre de nombreux (50+) types de contenu Plone 2.5 fonctionnant sous Plone 3.x? Devrais-je modifier tous les nombreux types de contenu? Parce que c'est ce que je préférerais ne pas faire. – pydanny

+1

Si tous les types avaient une interface ou une sous-classe commune (ATCTMixin par exemple), vous auriez juste besoin de l'étendre une fois. Alors tous les types obtiennent l'addition gratuitement. Vous pouvez également marquer tous ces types avec une interface via zcml si elle descend à lui. Puis étendez via cette interface. – claytron

+0

Ce serait une bonne solution * mais * nous n'avons pas d'interface ou de sous-classe commune. – pydanny

Questions connexes