Exemple #1
0
def Initialize(klass):
    """
    @summary: B{_apply} takes a list of models and to each model it:
        1. adds B{ActionTarget} as a base class (in I{__bases__}) to
            provide a common interface to the models;
        2. assigns an instance of ActionTargetManager to I{actions}
            which limits the scope to within a single model
        3. registers listeners to call methods in L{Log} regarding events
            on subclassed models; specifically:
                1. L{Log.log_save} is called before a row is saved
                2. L{Log.log_create} is called after a row is created
                3. L{Log.log_delete} is called before a row is deleted
                    (this should not happen.)
    
    @return: None
    @rtype:  NoneType
    """
    if not isinstance(klasses, (list, tuple)):
        klasses = (klasses,)
    for model in klasses:
        ACTING_MODELS.append(model)
        model_utils.mixin(ActionMixin, model)
    
    for model_class in Action.ACTING_MODELS:
        models.signals.post_save.connect(Action.on_create, sender=model_class)
        models.signals.pre_delete.connect(Action.on_delete, sender=model_class)
Exemple #2
0
def InitializeModels(klasses):
    """
    @summary: Mixes the textful fields (title, summary, description) and 
    LinkMixin methods into the specified model
    """
    if not isinstance(klasses, (list, tuple)):
        klasses = (klasses,)
    for model in klasses:
        model_utils.mixin(LinkMixin, model)
Exemple #3
0
def InitializeModels(klasses):
    """
    @summary: Mixes the Vote and TotalVote mixins into the
    classes in klasses.
    @param klasses: may be a single class or list of classes 
    """
    if not isinstance(klasses, (list, tuple)):
        klasses = (klasses,)
    for model in klasses:
        VOTABLE_MODELS.append(model)
        model_utils.mixin(VoteMixin, model)
        model_utils.mixin(TotalVoteMixin, model)
Exemple #4
0
def InitializeModels(klasses):
    """
    @summary: Mixes the textful fields (title, summary, description) and 
    LinkMixin methods into the specified model
    """
    if not isinstance(klasses, (list, tuple)):
        klasses = (klasses,)
    for model in klasses:
        model.add_to_class('title', django_models.CharField(max_length=255))
        model.add_to_class('slug', django_models.SlugField())
        model.add_to_class('summary', django_models.TextField(blank=True))
        model.add_to_class('description', django_models.TextField(blank=True))
        # TODO markdown, ReST, textile choice
        model.add_to_class('links', django_models.ManyToManyField(Link, blank=True, null=True))
        if not hasattr(model, 'admin_options'):
            model.add_to_class('admin_options', {})
        model.admin_options.update({
            'prepopulated_fields': {'slug': ('title','summary') }
            })

        model_utils.mixin(LinkMixin, model)
Exemple #5
0
 def Initialize(klass):
     model_utils.mixin(FPSMultiuseCancelTokenMixin, User)
Exemple #6
0
 def Initialize(klass):
     model_utils.mixin(FPSMultiusePayMixin, User)
Exemple #7
0
 def Initialize(klass):
     """
     @summary: Mixes the MeetingMixin class into TwitterUser
     """
     model_utils.mixin(MeetingMixin, TwitterUser)
Exemple #8
0
 def Initialize(klass):
     model_utils.mixin(FPSRecipientMixin, Recipient)
Exemple #9
0
 def Initialize(klass):
     model_utils.mixin(LogMixin, User)
Exemple #10
0
 def Initialize(klass):
     models.signals.pre_save.connect(Theme.check_publishable, sender=Theme)
     model_utils.mixin(ThemeMixin, TwitterUser)
Exemple #11
0
 def Initialize(klass):
     model_utils.mixin(RecipientPaymentMixin, User)
     model_utils.mixin(RecipientPaymentMixin_R, Recipient)
Exemple #12
0
 def Initialize(klass):
     model_utils.mixin(MetaReportMixin, User)
     model_utils.mixin(MetaReportMixin_R, Recipient)
     models.signals.pre_save.connect(MetaReport.sanitize_user_input, sender=MetaReport)
Exemple #13
0
 def Initialize(klass):
     model_utils.mixin(ReportMixin, User)
Exemple #14
0
 def Initialize(klass):
     model_utils.mixin(RecipientVoteMixin, User)
Exemple #15
0
from models import ALL_MODELS

from lib import model_utils
model_utils.mixin(model_utils.ModelMixin, ALL_MODELS)

from lib.admins import Adminizer
Adminizer.Adminize(ALL_MODELS)

for model in ALL_MODELS:
    if hasattr(model, 'Initialize'):
        model.Initialize()
Exemple #16
0
 def Initialize(klass):
     model_utils.mixin(FPSRecipientMixin, Recipient)
Exemple #17
0
 def Initialize(klass):
     model_utils.mixin(LogMixin, User)
Exemple #18
0
 def Initialize(klass):
     model_utils.mixin(FPSMultiusePayMixin, User)
Exemple #19
0
from django import template
template.add_to_builtins("django.contrib.markup.templatetags.markup")

from models import Link, LinkMixin
from django.db import models as django_models

ALL_MODELS = [Link]

from lib import model_utils
model_utils.mixin(model_utils.ModelMixin, ALL_MODELS)

from lib.admins import Adminizer
Adminizer.Adminize(ALL_MODELS)

LINKABLE_MODELS = []
def InitializeModels(klasses):
    """
    @summary: Mixes the textful fields (title, summary, description) and 
    LinkMixin methods into the specified model
    """
    if not isinstance(klasses, (list, tuple)):
        klasses = (klasses,)
    for model in klasses:
        model.add_to_class('title', django_models.CharField(max_length=255))
        model.add_to_class('slug', django_models.SlugField())
        model.add_to_class('summary', django_models.TextField(blank=True))
        model.add_to_class('description', django_models.TextField(blank=True))
        # TODO markdown, ReST, textile choice
        model.add_to_class('links', django_models.ManyToManyField(Link, blank=True, null=True))
        if not hasattr(model, 'admin_options'):
            model.add_to_class('admin_options', {})
Exemple #20
0
 def Initialize(klass):
     model_utils.mixin(FPSMultiuseCancelTokenMixin, User)
Exemple #21
0
 def Initialize(klass):
     model_utils.mixin(WeddingUserTaggingMixin, Wedding)
Exemple #22
0
 def Initialize(klass):
     model_utils.mixin(WeddingUserTaggingMixin, Wedding)