# Path: grapevine/generics.py
# class EmailSendable(mixins.Emailable, mixins.SendableMixin):
#     class Meta(mixins.SendableMixin.Meta):
#     class EmailTemplateSendable(mixins.Emailable,
#                                 mixins.TemplateSendableMixin):
#         class Meta(mixins.TemplateSendableMixin.Meta):
# 
# Path: grapevine/models/base.py
# class GrapevineModel(GrapevineLogicModel, GrapevineTimeKeepingModel):
# 
#     class Meta:
#         abstract = True
# 
# Path: tests/core/querysets.py
# class WelcomeEmailQuerySet(SendableQuerySet):
#     """Custom functions would ultimately go here"""


from django.conf import settings
from django.db import models
from grapevine import generics
from grapevine.models.base import GrapevineModel
from model_utils.managers import PassThroughManager
from .querysets import WelcomeEmailQuerySet
from __future__ import unicode_literals

# Django

# 3rd Party

# Local Apps


class WelcomeEmail(generics.EmailSendable, GrapevineModel):
    user = models.ForeignKey(settings.AUTH_USER_MODEL, related_name="welcome_emails")

    try:
        # In Django 1.7, this is finally addressed!

# Path: grapevine/generics.py
# class EmailSendable(mixins.Emailable, mixins.SendableMixin):
#     class Meta(mixins.SendableMixin.Meta):
#     class EmailTemplateSendable(mixins.Emailable,
#                                 mixins.TemplateSendableMixin):
#         class Meta(mixins.TemplateSendableMixin.Meta):
# 
# Path: grapevine/models/base.py
# class GrapevineModel(GrapevineLogicModel, GrapevineTimeKeepingModel):
# 
#     class Meta:
#         abstract = True
# 
# Path: tests/core/querysets.py
# class WelcomeEmailQuerySet(SendableQuerySet):
#     """Custom functions would ultimately go here"""


# Path: tests/core/models.py
from django.conf import settings
from django.db import models
from grapevine import generics
from grapevine.models.base import GrapevineModel
from model_utils.managers import PassThroughManager
from .querysets import WelcomeEmailQuerySet

from __future__ import unicode_literals

# Django

# 3rd Party

# Local Apps


class WelcomeEmail(generics.EmailSendable, GrapevineModel):
    user = models.ForeignKey(settings.AUTH_USER_MODEL, related_name="welcome_emails")

    try:
        # In Django 1.7, this is finally addressed!

        objects = WelcomeEmailQuerySet.as_manager()