コード例 #1
0
    def get_model(self, item_type):
        models = htk_setting('HTK_SHOPIFY_SQL_MODELS')

        model_cls = models[item_type]
        from htk.utils import resolve_model_dynamically
        model = resolve_model_dynamically(model_cls)
        return model
コード例 #2
0
ファイル: apps.py プロジェクト: aweandreverence/django-htk
    def ready(self):
        GroupQuoteModel = resolve_model_dynamically(
            htk_setting('HTK_CPQ_GROUP_QUOTE_MODEL'))

        ##
        # signals
        signals.post_save.connect(sync_group_sub_quotes,
                                  sender=GroupQuoteModel)
コード例 #3
0
ファイル: models.py プロジェクト: WhitespaceCrew/django-htk
 def get_charges(self):
     """Get charges made on this Invoice
     """
     payment = self.get_payment()
     stripe_customer_id = payment['stripe_customer']
     StripeCustomerModel = resolve_model_dynamically(htk_setting('HTK_STRIPE_CUSTOMER_MODEL'))
     stripe_customer = StripeCustomerModel.objects.get(id=stripe_customer_id)
     charges = stripe_customer.get_charges()
     return charges
コード例 #4
0
ファイル: models.py プロジェクト: aweandreverence/django-htk
 def create_invoice_for_payment(self, stripe_customer, line_items):
     """Creates an invoice for this Quote with successful payment by `stripe_customer` for `line_items`
     """
     InvoiceModel = resolve_model_dynamically(
         htk_setting('HTK_CPQ_INVOICE_MODEL'))
     invoice = InvoiceModel.objects.create(date=utcnow(),
                                           customer=self.customer,
                                           paid=True,
                                           quote=self)
     invoice.record_payment(stripe_customer, line_items)
コード例 #5
0
ファイル: forms.py プロジェクト: yacine15/django-htk
 class Meta:
     model = resolve_model_dynamically(
         htk_setting('HTK_POSTAL_ADDRESS_MODEL'))
     exclude = (
         'latitude',
         'longitude',
         'street_number',
         'street_name',
         'unit_type',
         'unit',
     )
コード例 #6
0
ファイル: models.py プロジェクト: WhitespaceCrew/django-htk
 def create_invoice_for_payment(self, stripe_customer, line_items):
     """Creates an invoice for this Quote with successful payment by `stripe_customer` for `line_items`
     """
     InvoiceModel = resolve_model_dynamically(htk_setting('HTK_CPQ_INVOICE_MODEL'))
     invoice = InvoiceModel.objects.create(
         date=utcnow(),
         customer=self.customer,
         paid=True,
         quote=self
     )
     invoice.record_payment(stripe_customer, line_items)
コード例 #7
0
 def get_charges(self):
     """Get charges made on this Invoice
     """
     payment = self.get_payment()
     if payment:
         stripe_customer_id = payment['stripe_customer']
         StripeCustomerModel = resolve_model_dynamically(htk_setting('HTK_STRIPE_CUSTOMER_MODEL'))
         stripe_customer = StripeCustomerModel.objects.get(id=stripe_customer_id)
         charges = stripe_customer.get_charges()
     else:
         charges = None
     return charges
コード例 #8
0
ファイル: utils.py プロジェクト: yacine15/django-htk
def get_organization_customer_choices():
    OrganizationCustomerModel = resolve_model_dynamically(
        htk_setting('HTK_CPQ_ORGANIZATION_CUSTOMER_MODEL'))
    choices = [(
        '',
        'Select an Organization Customer',
    )]
    choices += [(
        org.id,
        org,
    ) for org in OrganizationCustomerModel.objects.all()]
    return choices
コード例 #9
0
def get_admin_urls():
    from htk.apps.cpq.constants.general import CPQ_APP_MODEL_NAMES
    admin_urls = []
    app_label = htk_setting('HTK_DEFAULT_APP_LABEL')
    for app_model_name in CPQ_APP_MODEL_NAMES:
        app_model = resolve_model_dynamically('%s.%s' % (app_label, app_model_name,))
        admin_url = {
            'url' : reverse('admin:%s_%s_changelist' % (app_label, app_model_name,)),
            'add_url' : reverse('admin:%s_%s_add' % (app_label, app_model_name,)),
            'name' : app_model._meta.verbose_name_plural.title(),
        }
        admin_urls.append(admin_url)
    return admin_urls
コード例 #10
0
ファイル: apps.py プロジェクト: aweandreverence/django-htk
def sync_group_sub_quotes(sender, instance, created, **kwargs):
    """signal handler for GroupQuote post-save
    """
    if created:
        QuoteModel = resolve_model_dynamically(
            htk_setting('HTK_CPQ_QUOTE_MODEL'))
        group_quote = instance
        members = group_quote.organization.members.all()
        quotes = [
            QuoteModel(customer=member,
                       group_quote=group_quote,
                       date=group_quote.date) for member in members
        ]
        QuoteModel.objects.bulk_create(quotes)
コード例 #11
0
ファイル: apps.py プロジェクト: WhitespaceCrew/django-htk
def sync_group_sub_quotes(sender, instance, created, **kwargs):
    """signal handler for GroupQuote post-save
    """
    if created:
        QuoteModel = resolve_model_dynamically(htk_setting('HTK_CPQ_QUOTE_MODEL'))
        group_quote = instance
        members = group_quote.organization.members.all()
        quotes = [
            QuoteModel(
                customer=member,
                group_quote=group_quote,
                date=group_quote.date
            )
            for member in members
        ]
        QuoteModel.objects.bulk_create(quotes)
コード例 #12
0
ファイル: forms.py プロジェクト: yacine15/django-htk
    def clean_organization_customer(self):
        organization_customer = None
        organization_customer_id = self.cleaned_data['organization_customer']
        if organization_customer_id:
            OrganizationCustomerModel = resolve_model_dynamically(htk_setting('HTK_CPQ_ORGANIZATION_CUSTOMER_MODEL'))
            try:
                organization_customer = OrganizationCustomerModel.objects.get(id=organization_customer_id)
            except OrganizationCustomerModel.DoesNotExist:
                pass

        if organization_customer is None:
            raise forms.ValidationError('Could not find organization')
        elif organization_customer.members.exists():
            raise forms.ValidationError('Organization already has members. Importing is not allowed, as it would overwrite existing members. To re-import, delete existing members first.')

        self.organization_customer = organization_customer
        return organization_customer
コード例 #13
0
ファイル: general.py プロジェクト: aweandreverence/django-htk
def get_bible_book_model():
    model_name = htk_setting('HTK_BIBLE_BOOK_MODEL')
    bible_book_model = resolve_model_dynamically(model_name)
    return bible_book_model
コード例 #14
0
ファイル: utils.py プロジェクト: WhitespaceCrew/django-htk
def get_organization_customer_choices():
    OrganizationCustomerModel = resolve_model_dynamically(htk_setting('HTK_CPQ_ORGANIZATION_CUSTOMER_MODEL'))
    choices = [('', 'Select an Organization Customer',)]
    choices += [(org.id, org,) for org in OrganizationCustomerModel.objects.all()]
    return choices
コード例 #15
0
ファイル: general.py プロジェクト: pkkup/django-htk
def get_bible_passage_model():
    model_name = htk_setting('HTK_BIBLE_PASSAGE_MODEL')
    bible_passage_model = resolve_model_dynamically(model_name)
    return bible_passage_model
コード例 #16
0
ファイル: general.py プロジェクト: pkkup/django-htk
def get_bible_chapter_model():
    model_name = htk_setting('HTK_BIBLE_CHAPTER_MODEL')
    bible_chapter_model = resolve_model_dynamically(model_name)
    return bible_chapter_model
コード例 #17
0
# Python Standard Library Imports
from itertools import chain

# HTK Imports
from htk.sitemaps import HtkBaseSitemap
from htk.utils import htk_setting
from htk.utils import resolve_model_dynamically

Product = resolve_model_dynamically(htk_setting('HTK_STORE_PRODUCT_MODEL'))
ProductCollection = resolve_model_dynamically(
    htk_setting('HTK_STORE_PRODUCT_COLLECTION_MODEL'))


class HtkStoreSitemap(HtkBaseSitemap):
    priority = 0.5
    changefreq = 'daily'

    def get_static_view_names(self):
        static_view_names = [
            'store',
            'store_collections',
            'store_products',
        ]
        return static_view_names

    def get_model_instances(self):
        products = Product.objects.all()
        product_collections = ProductCollection.objects.all()
        _instances = chain(
            products,
            product_collections,
コード例 #18
0
ファイル: utils.py プロジェクト: yacine15/django-htk
def get_bible_verse_model():
    model_name = htk_setting('HTK_BIBLE_VERSE_MODEL')
    bible_verse_model = resolve_model_dynamically(model_name)
    return bible_verse_model
コード例 #19
0
ファイル: utils.py プロジェクト: aweandreverence/django-htk
def get_token_model():
    Token = resolve_model_dynamically(htk_setting('HTK_TOKEN_MODEL'))
    return Token
コード例 #20
0
ファイル: utils.py プロジェクト: aweandreverence/django-htk
def get_feature_flag_model():
    FeatureFlag = resolve_model_dynamically(
        htk_setting('HTK_FEATURE_FLAG_MODEL'))
    return FeatureFlag
コード例 #21
0
ファイル: apps.py プロジェクト: WhitespaceCrew/django-htk
    def ready(self):
        GroupQuoteModel = resolve_model_dynamically(htk_setting('HTK_CPQ_GROUP_QUOTE_MODEL'))

        ##
        # signals
        signals.post_save.connect(sync_group_sub_quotes, sender=GroupQuoteModel)
コード例 #22
0
ファイル: utils.py プロジェクト: aweandreverence/django-htk
def get_model_organization_member():
    OrganizationMember = resolve_model_dynamically(
        htk_setting('HTK_ORGANIZATION_MEMBER_MODEL'))
    return OrganizationMember
コード例 #23
0
ファイル: views.py プロジェクト: WhitespaceCrew/django-htk
from django.contrib.auth.decorators import login_required
from django.core.urlresolvers import reverse
from django.http import Http404
from django.shortcuts import redirect

from htk.decorators.classes import restful_obj_seo_redirect
from htk.utils import htk_setting
from htk.utils import resolve_model_dynamically
from htk.utils.templates import get_renderer
from htk.utils.templates import get_template_context_generator
from htk.view_helpers import add_page_title
from htk.view_helpers import render_to_response_custom as _r
from htk.view_helpers import wrap_data as htk_wrap_data

Product = resolve_model_dynamically(htk_setting('HTK_STORE_PRODUCT_MODEL'))
ProductCollection = resolve_model_dynamically(htk_setting('HTK_STORE_PRODUCT_COLLECTION_MODEL'))

def index(request):
    renderer = get_renderer()
    wrap_data = get_template_context_generator()
    data = wrap_data(request)
    data['product_collections'] = ProductCollection.objects.all()
    response = renderer('store/index.html', data)
    return response

def product_collections(request):
    renderer = get_renderer()
    wrap_data = get_template_context_generator()
    data = wrap_data(request)
    data['product_collections'] = ProductCollection.objects.all()
    response = renderer('store/collections.html', data)
コード例 #24
0
ファイル: general.py プロジェクト: aweandreverence/django-htk
def get_bible_chapter_model():
    model_name = htk_setting('HTK_BIBLE_CHAPTER_MODEL')
    bible_chapter_model = resolve_model_dynamically(model_name)
    return bible_chapter_model
コード例 #25
0
ファイル: general.py プロジェクト: aweandreverence/django-htk
def get_bible_passage_model():
    model_name = htk_setting('HTK_BIBLE_PASSAGE_MODEL')
    bible_passage_model = resolve_model_dynamically(model_name)
    return bible_passage_model
コード例 #26
0
ファイル: settings.py プロジェクト: PocketGM/django-htk
import pytz

from django import forms
from django.conf import settings

from htk.apps.accounts.utils import associate_user_email
from htk.apps.accounts.utils import get_user_by_email
from htk.forms.utils import set_input_attrs
from htk.forms.utils import set_input_placeholder_labels
from htk.session_keys import *
from htk.utils import htk_setting
from htk.utils import resolve_model_dynamically

UserProfile = resolve_model_dynamically(settings.AUTH_PROFILE_MODULE)

class AddEmailForm(forms.Form):
    email = forms.EmailField(label='Email')

    def __init__(self, user=None, *args, **kwargs):
        super(AddEmailForm, self).__init__(*args, **kwargs)
        self.user = user
        set_input_attrs(self)
        set_input_placeholder_labels(self)

    def clean_email(self):
        email = self.cleaned_data['email']
        user = get_user_by_email(email)
        if user is None:
            self.email = email
        else:
            raise forms.ValidationError('This email is already registered')
コード例 #27
0
ファイル: forms.py プロジェクト: yacine15/django-htk
 class Meta:
     model = resolve_model_dynamically(htk_setting('HTK_CPQ_CUSTOMER_MODEL'))
     exclude = ()
コード例 #28
0
ファイル: services.py プロジェクト: pkkup/django-htk
    def init_model(self, module_str):
        model = resolve_model_dynamically(module_str)

        assert model is not None

        self.model = model
コード例 #29
0
ファイル: general.py プロジェクト: pkkup/django-htk
def get_bible_book_model():
    model_name = htk_setting('HTK_BIBLE_BOOK_MODEL')
    bible_book_model = resolve_model_dynamically(model_name)
    return bible_book_model
コード例 #30
0
ファイル: update.py プロジェクト: abutbul/django-htk
from django.conf import settings
from django.contrib.auth import get_user_model
from django.contrib.auth.forms import SetPasswordForm

# HTK Imports
from htk.apps.accounts.emails import password_changed_email
from htk.forms import AbstractModelInstanceUpdateForm
from htk.forms.utils import set_input_attrs
from htk.forms.utils import set_input_placeholder_labels
from htk.utils import htk_setting
from htk.utils import resolve_model_dynamically
from htk.utils.geo import get_us_state_abbreviation_choices


UserModel = get_user_model()
UserProfile = resolve_model_dynamically(settings.AUTH_PROFILE_MODULE)


class UserUpdateForm(AbstractModelInstanceUpdateForm):
    class Meta:
        model = UserModel
        exclude = (
            # these fields should never be manipultated from this form
            'email', # managed by UserEmail objects
            'password',
        )

        help_texts = {
            'username' : htk_setting('HTK_USERNAME_HELP_TEXT'),
        }