diff --git a/project/__init__.py b/project/__init__.py index f125737..7124615 100644 --- a/project/__init__.py +++ b/project/__init__.py @@ -1,4 +1,5 @@ # -*- coding: utf-8 -*- from __future__ import absolute_import -#from .celery import app as celery_app - +# from .celery import app as celery_app +# +# __all__ = ['celery_app'] \ No newline at end of file diff --git a/project/_celery.py b/project/_celery.py deleted file mode 100644 index 394f722..0000000 --- a/project/_celery.py +++ /dev/null @@ -1,23 +0,0 @@ -# -*- coding: utf-8 -*- -from __future__ import absolute_import - -import os - -from django.conf import settings - -# set the default Django settings module for the 'celery' program. -os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'project.settings') - -import celery -from celery import Celery -app = Celery('proj') - -# Using a string here means the worker will not have to -# pickle the object when using Windows. -app.config_from_object('django.conf:settings') -app.autodiscover_tasks(lambda: settings.INSTALLED_APPS) - - -#@app.task(bind=True) -#def debug_task(self): -# print('Request: {0!r}'.format(self.request)) diff --git a/project/callback/urls.py b/project/callback/urls.py index 86289cd..8945254 100644 --- a/project/callback/urls.py +++ b/project/callback/urls.py @@ -1,8 +1,8 @@ # -*- coding: utf-8 -*- -from django.conf.urls.defaults import patterns, url +from django.conf.urls import patterns, url from .views import req_avail urlpatterns = patterns('', - url(r'^send/$', req_avail, name='callback-send-message'), - url(r'^send/(?P\d+)/$', req_avail, name='callback-request-item'), - ) + url(r'^send/$', req_avail, name='callback-send-message'), + url(r'^send/(?P\d+)/$', req_avail, name='callback-request-item'), + ) diff --git a/project/celery.py b/project/celery.py new file mode 100644 index 0000000..02beb9b --- /dev/null +++ b/project/celery.py @@ -0,0 +1,23 @@ +# -*- coding: utf-8 -*- +from __future__ import absolute_import, unicode_literals +import os + +import celery +print celery.__file__ +# from celery import Celery +from django.conf import settings + +# set the default Django settings module for the 'celery' program. +os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'project.settings') + +# app = Celery('proj') + +# Using a string here means the worker will not have to +# pickle the object when using Windows. +# app.config_from_object('django.conf:settings') +# app.autodiscover_tasks(lambda: settings.INSTALLED_APPS) + + +# @app.task(bind=True) +# def debug_task(self): +# print('Request: {0!r}'.format(self.request)) \ No newline at end of file diff --git a/project/customer/__init__.py b/project/customer/__init__.py index e027062..fd68d2f 100644 --- a/project/customer/__init__.py +++ b/project/customer/__init__.py @@ -1,2 +1,3 @@ # -*- coding: utf-8 -*- -from .models import get_profile +# from customer.models import get_profile +default_app_config = "customer.apps.CustomerConfig" diff --git a/project/customer/apps.py b/project/customer/apps.py new file mode 100644 index 0000000..48db4f3 --- /dev/null +++ b/project/customer/apps.py @@ -0,0 +1,6 @@ +# -*- coding: utf-8 -*- +from django.apps import AppConfig + + +class CustomerConfig(AppConfig): + name = 'customer' diff --git a/project/customer/forms.py b/project/customer/forms.py index 8cf8349..6566c8e 100644 --- a/project/customer/forms.py +++ b/project/customer/forms.py @@ -7,7 +7,7 @@ from django.conf import settings from yandex_money.forms import PaymentForm from project.commons.forms import MyBaseModelForm, set_field_error -from . import consts, models +from customer import consts, models FILE_UPLOAD_MAX_MEMORY_SIZE = getattr(settings, 'FILE_UPLOAD_MAX_MEMORY_SIZE ', 2621440) # default 2.5Mb @@ -59,6 +59,7 @@ class UserProfileForm(MyBaseModelForm): class Meta: model = models.UserProfile + fields = "__all__" def __init__(self, *args, **kwargs): super(UserProfileForm, self).__init__(*args, **kwargs) @@ -276,6 +277,7 @@ class UserProfileFiltersForm(MyBaseModelForm): widgets = { 'bank_account': forms.RadioSelect(), } + fields = "__all__" def __init__(self, profile=None, accounts=None, *args, **kwargs): instance = kwargs.get('instance') diff --git a/project/customer/middleware.py b/project/customer/middleware.py index 283e5aa..549acef 100644 --- a/project/customer/middleware.py +++ b/project/customer/middleware.py @@ -3,7 +3,7 @@ from django.utils.functional import SimpleLazyObject from django.contrib.auth.views import logout as django_logout from django.contrib import messages -from .models import get_profile +from customer.models import get_profile def _get_profile(request): diff --git a/project/customer/models.py b/project/customer/models.py index 9aa317f..0385cfa 100644 --- a/project/customer/models.py +++ b/project/customer/models.py @@ -12,7 +12,7 @@ from django.db.models import Max from django.core.urlresolvers import reverse from . import consts, managers, utils -from project.myauth.models import DokUser +from myauth.models import DokUser from project.commons.utils import only_numerics diff --git a/project/customer/urls.py b/project/customer/urls.py index be7a31f..7baf3a9 100644 --- a/project/customer/urls.py +++ b/project/customer/urls.py @@ -1,63 +1,63 @@ # -*- coding: utf-8 -*- from django.conf.urls import * -from . import views -from .views import profile, profile_ajax, license, docs -from .views import bank_accounts,bank_accounts_ajax -from .views import clients, clients_ajax +from customer import views +from customer.views import profile, profile_ajax, license, documents +from customer.views import bank_accounts, bank_accounts_ajax +from customer.views import clients, clients_ajax urlpatterns = patterns('', - # личный кабинет + # личный кабинет url(r'^$', views.customer_index, name='customer_index'), - # --- профиль + # --- профиль url(r'^profile/$', profile.profile_view, name='customer_profile_view'), - url(r'^profile/edit/$', profile.profile_edit, name='customer_profile_edit'), - url(r'^profile/email/$', profile.profile_email, name='customer_profile_email'), - url(r'^license/$', license.order_license, name='customer_order_license'), - url(r'^delete_license/(?P\d+)/$', license.delete_license, name='customer_delete_license'), - url(r'^get_doc/(?P\d+)/$', docs.get_doc, name='customer_license_get_doc'), - url(r'^payment/confirm/(?P\d+)$', license.yandex_pay, name='yamoney_confirm'), - url(r'^payment/result/$', license.payment_result, name='yamoney_result'), - url(r'^payment/success/$', license.payment_success, name='yamoney_success'), - url(r'^payment/fail/$', license.payment_fail, name='yamoney_fail'), - url(r'^license_list/$', license.license_list, name='customer_license_list'), - url(r'^paid_list/$', license.paid_list, name='customer_paid_list'), - - # --- профиль AJAX + url(r'^profile/edit/$', profile.profile_edit, name='customer_profile_edit'), + url(r'^profile/email/$', profile.profile_email, name='customer_profile_email'), + url(r'^license/$', license.order_license, name='customer_order_license'), + url(r'^delete_license/(?P\d+)/$', license.delete_license, name='customer_delete_license'), + url(r'^get_doc/(?P\d+)/$', documents.get_doc, name='customer_license_get_doc'), + url(r'^payment/confirm/(?P\d+)$', license.yandex_pay, name='yamoney_confirm'), + url(r'^payment/result/$', license.payment_result, name='yamoney_result'), + url(r'^payment/success/$', license.payment_success, name='yamoney_success'), + url(r'^payment/fail/$', license.payment_fail, name='yamoney_fail'), + url(r'^license_list/$', license.license_list, name='customer_license_list'), + url(r'^paid_list/$', license.paid_list, name='customer_paid_list'), + + # --- профиль AJAX url(r'^profile/filters/edit/ajax/$', profile_ajax.profile_filters_edit_ajax, name='customer_profile_filters_edit_ajax'), - url(r'^profile/email/ajax/$', profile_ajax.profile_email_ajax, name='customer_profile_email_ajax'), + url(r'^profile/email/ajax/$', profile_ajax.profile_email_ajax, name='customer_profile_email_ajax'), - # --- расчетные счета + # --- расчетные счета url(r'^bank-accounts/$', bank_accounts.bank_accounts_list, name='customer_bank_accounts_list'), - url(r'^bank-accounts/page/(?P[0-9]+)/$', bank_accounts.bank_accounts_list, name='customer_bank_accounts_list'), - url(r'^bank-accounts/add/$', bank_accounts.bank_accounts_add, name='customer_bank_accounts_add'), - url(r'^bank-accounts/(?P\d+)/edit/$', bank_accounts.bank_accounts_edit, name='customer_bank_accounts_edit'), - url(r'^bank-accounts/(?P\d+)/delete/$', bank_accounts.bank_accounts_delete, name='customer_bank_accounts_delete'), + url(r'^bank-accounts/page/(?P[0-9]+)/$', bank_accounts.bank_accounts_list, name='customer_bank_accounts_list'), + url(r'^bank-accounts/add/$', bank_accounts.bank_accounts_add, name='customer_bank_accounts_add'), + url(r'^bank-accounts/(?P\d+)/edit/$', bank_accounts.bank_accounts_edit, name='customer_bank_accounts_edit'), + url(r'^bank-accounts/(?P\d+)/delete/$', bank_accounts.bank_accounts_delete, name='customer_bank_accounts_delete'), - # --- расчетные счета AJAX + # --- расчетные счета AJAX url(r'^bank-accounts/ajax/$', bank_accounts_ajax.bank_accounts_list_ajax, name='customer_bank_accounts_list_ajax'), - url(r'^bank-accounts/(?P\d+)/get/ajax/$', bank_accounts_ajax.bank_accounts_get_ajax, + url(r'^bank-accounts/(?P\d+)/get/ajax/$', bank_accounts_ajax.bank_accounts_get_ajax, name='customer_bank_accounts_get_ajax'), - url(r'^bank-accounts/add/ajax/$', bank_accounts_ajax.bank_accounts_add_ajax, name='customer_bank_accounts_add_ajax'), - url(r'^bank-accounts/(?P\d+)/edit/ajax/$', bank_accounts_ajax.bank_accounts_edit_ajax, + url(r'^bank-accounts/add/ajax/$', bank_accounts_ajax.bank_accounts_add_ajax, name='customer_bank_accounts_add_ajax'), + url(r'^bank-accounts/(?P\d+)/edit/ajax/$', bank_accounts_ajax.bank_accounts_edit_ajax, name='customer_bank_accounts_edit_ajax'), - url(r'^bank-accounts/(?P\d+)/delete/ajax/$', bank_accounts_ajax.bank_accounts_delete_ajax, + url(r'^bank-accounts/(?P\d+)/delete/ajax/$', bank_accounts_ajax.bank_accounts_delete_ajax, name='customer_bank_accounts_delete_ajax'), - # --- контрагенты + # --- контрагенты url(r'^clients/$', clients.clients_list, name='customer_clients_list'), - url(r'^clients/page/(?P[0-9]+)/$', clients.clients_list, name='customer_clients_list'), - url(r'^clients/add/$', clients.clients_add, name='customer_clients_add'), - url(r'^clients/(?P\d+)/edit/$', clients.clients_edit, name='customer_clients_edit'), - url(r'^clients/(?P\d+)/delete/$', clients.clients_delete, name='customer_clients_delete'), + url(r'^clients/page/(?P[0-9]+)/$', clients.clients_list, name='customer_clients_list'), + url(r'^clients/add/$', clients.clients_add, name='customer_clients_add'), + url(r'^clients/(?P\d+)/edit/$', clients.clients_edit, name='customer_clients_edit'), + url(r'^clients/(?P\d+)/delete/$', clients.clients_delete, name='customer_clients_delete'), - # --- контрагенты AJAX + # --- контрагенты AJAX url(r'^clients/(?P\d+)/get/ajax/$', clients_ajax.clients_get_ajax, name='customer_clients_get_ajax'), - url(r'^clients/add/ajax/$', clients_ajax.clients_add_ajax, name='customer_clients_add_ajax'), - url(r'^clients/(?P\d+)/edit/ajax/$', clients_ajax.clients_edit_ajax, name='customer_clients_edit_ajax'), - url(r'^clients/(?P\d+)/delete/ajax/$', clients_ajax.clients_delete_ajax, name='customer_clients_delete_ajax'), + url(r'^clients/add/ajax/$', clients_ajax.clients_add_ajax, name='customer_clients_add_ajax'), + url(r'^clients/(?P\d+)/edit/ajax/$', clients_ajax.clients_edit_ajax, name='customer_clients_edit_ajax'), + url(r'^clients/(?P\d+)/delete/ajax/$', clients_ajax.clients_delete_ajax, name='customer_clients_delete_ajax'), - url(r'^tmp_upload/ajax/$', profile.tmp_upload, name='upload_tmp_file'), -) + url(r'^tmp_upload/ajax/$', profile.tmp_upload, name='upload_tmp_file'), + ) diff --git a/project/customer/views/clients_ajax.py b/project/customer/views/clients_ajax.py index 9fa32d8..8985456 100644 --- a/project/customer/views/clients_ajax.py +++ b/project/customer/views/clients_ajax.py @@ -9,10 +9,10 @@ from django.views.decorators.csrf import csrf_protect from django.contrib.auth.decorators import login_required from django.template.loader import render_to_string -from .. import models, forms -from ...docs.models import Invoice, Faktura, AktRabot, AktSverki, Nakladn, Platejka, Dover -from ..decorators import license_required -from ..utils import raise_if_no_profile +from customer import models, forms +from docs.models import Invoice, Faktura, AktRabot, AktSverki, Nakladn, Platejka, Dover +from customer.decorators import license_required +from customer.utils import raise_if_no_profile @login_required diff --git a/project/customer/views/docs.py b/project/customer/views/documents.py similarity index 97% rename from project/customer/views/docs.py rename to project/customer/views/documents.py index e635c10..0ed35fd 100644 --- a/project/customer/views/docs.py +++ b/project/customer/views/documents.py @@ -10,8 +10,8 @@ from xlrd import open_workbook from xlutils.copy import copy from pytils.numeral import rubles -from ..models import License -from ..utils import raise_if_no_profile +from customer.models import License +from customer.utils import raise_if_no_profile XLS_ROOT = os.path.join(settings.TEMPLATE_DIRS[0], 'xls') diff --git a/project/customer/views/license.py b/project/customer/views/license.py index 92df19b..31211c0 100644 --- a/project/customer/views/license.py +++ b/project/customer/views/license.py @@ -14,10 +14,10 @@ from django.views.decorators.csrf import csrf_protect from yandex_money.models import Payment -from ..models import License, LicensePrice -from ..consts import PAYFORMS -from ..forms import LicenseForm, YaForm -from ..utils import raise_if_no_profile +from customer.models import License, LicensePrice +from customer.consts import PAYFORMS +from customer.forms import LicenseForm, YaForm +from customer.utils import raise_if_no_profile @login_required diff --git a/project/customer/views/profile.py b/project/customer/views/profile.py index 8f4fc03..cf49ad1 100644 --- a/project/customer/views/profile.py +++ b/project/customer/views/profile.py @@ -19,9 +19,9 @@ from easy_thumbnails.files import get_thumbnailer from project.commons.pdf_tools import render_pdf_to_string, pdf_to_response -from .. import models, forms -from ..decorators import license_required -from ..utils import raise_if_no_profile +from customer import models, forms +from customer.decorators import license_required +from customer.utils import raise_if_no_profile PDF_PROFILE_NAME = u'Реквизиты.pdf' diff --git a/project/customer/views/profile_ajax.py b/project/customer/views/profile_ajax.py index 32a288f..7dce712 100644 --- a/project/customer/views/profile_ajax.py +++ b/project/customer/views/profile_ajax.py @@ -7,11 +7,11 @@ from django.views.decorators.http import require_POST from django.views.decorators.csrf import csrf_protect from django.contrib.auth.decorators import login_required -from .. import models, forms +from customer import models, forms -from ..decorators import license_required -from .profile import _send_profile_email, _profile_get_pdf -from ..utils import raise_if_no_profile +from customer.decorators import license_required +from customer.views.profile import _send_profile_email, _profile_get_pdf +from customer.utils import raise_if_no_profile @login_required diff --git a/project/docs/__init__.py b/project/docs/__init__.py index e69de29..7c68785 100644 --- a/project/docs/__init__.py +++ b/project/docs/__init__.py @@ -0,0 +1 @@ +# -*- coding: utf-8 -*- \ No newline at end of file diff --git a/project/docs/as_xls/render_to_xls.py b/project/docs/as_xls/render_to_xls.py index a22bf6f..d655a75 100644 --- a/project/docs/as_xls/render_to_xls.py +++ b/project/docs/as_xls/render_to_xls.py @@ -8,8 +8,8 @@ import xlrd import xlwt from django.conf import settings -from django.template import (Template, RequestContext, BLOCK_TAG_START, BLOCK_TAG_END, - VARIABLE_TAG_START, VARIABLE_TAG_END) +from django.template import Template, RequestContext +from django.template.base import BLOCK_TAG_START, BLOCK_TAG_END, VARIABLE_TAG_START, VARIABLE_TAG_END from project.commons.xls import (get_xlwt_style_list, copy_cells, width_cols, horz_page_break, mm_to_twips, sum_src_heights, sum_dst_heights) diff --git a/project/docs/autocomplete_light_registry.py b/project/docs/autocomplete_light_registry.py index 01e6e68..bbf43d3 100644 --- a/project/docs/autocomplete_light_registry.py +++ b/project/docs/autocomplete_light_registry.py @@ -3,7 +3,7 @@ import autocomplete_light from django.db.models import Q from models import (Country, Currency, Measure) -from project.customer.models import Client +from customer.models import Client class AutocompleteWithEmptyWidget(autocomplete_light.AutocompleteModelBase): diff --git a/project/docs/filters.py b/project/docs/filters.py index a46c3e6..4114cf2 100644 --- a/project/docs/filters.py +++ b/project/docs/filters.py @@ -3,10 +3,10 @@ import datetime import django_filters -from project.customer.models import Client +from customer.models import Client -from .models import Invoice -from . import consts +from docs.models import Invoice +from docs import consts class CustomDateRangeFilter(django_filters.DateRangeFilter): diff --git a/project/docs/forms/__init__.py b/project/docs/forms/__init__.py index d7456d1..3e08697 100644 --- a/project/docs/forms/__init__.py +++ b/project/docs/forms/__init__.py @@ -1,9 +1,9 @@ -from .email import EmailForm +from docs.forms.email import EmailForm -from .invoice import InvoiceForm, InvoiceAdminForm, InvoiceItemForm, InvoiceItemAdminForm, InvoicesListForm -from .aktrabot import AktRabotForm, AktRabotAdminForm, AktRabotItemForm, AktRabotItemAdminForm -from .aktsverki import AktSverkiForm, AktSverkiAdminForm, AktSverkiItemForm, AktSverkiItemAdminForm -from .dover import DoverForm, DoverAdminForm, DoverItemForm, DoverItemAdminForm -from .platejka import PlatejkaForm, PlatejkaAdminForm -from .nakladn import NakladnForm, NakladnAdminForm, NakladnItemForm, NakladnItemAdminForm -from .faktura import FakturaForm, FakturaAdminForm, FakturaItemForm, FakturaItemAdminForm +from docs.forms.invoice import InvoiceForm, InvoiceAdminForm, InvoiceItemForm, InvoiceItemAdminForm, InvoicesListForm +from docs.forms.aktrabot import AktRabotForm, AktRabotAdminForm, AktRabotItemForm, AktRabotItemAdminForm +from docs.forms.aktsverki import AktSverkiForm, AktSverkiAdminForm, AktSverkiItemForm, AktSverkiItemAdminForm +from docs.forms.dover import DoverForm, DoverAdminForm, DoverItemForm, DoverItemAdminForm +from docs.forms.platejka import PlatejkaForm, PlatejkaAdminForm +from docs.forms.nakladn import NakladnForm, NakladnAdminForm, NakladnItemForm, NakladnItemAdminForm +from docs.forms.faktura import FakturaForm, FakturaAdminForm, FakturaItemForm, FakturaItemAdminForm diff --git a/project/docs/forms/aktrabot.py b/project/docs/forms/aktrabot.py index a4a81f6..153f865 100644 --- a/project/docs/forms/aktrabot.py +++ b/project/docs/forms/aktrabot.py @@ -26,7 +26,8 @@ class AktRabotForm(BaseModelForm): class AktRabotAdminForm(AktRabotForm): """Форма редактирования акта выполн. работ - для админки.""" class Meta(AktRabotForm.Meta): - fields = None + # fields = None + exclude = () _textarea = forms.Textarea(attrs={'cols': 80, 'rows': 3}) widgets = { 'doc_text': _textarea, @@ -42,6 +43,7 @@ class AktRabotItemForm(MyBaseModelForm): class Meta: model = AktRabotItem exclude = ['parent'] + fields ='__all__' class AktRabotItemAdminForm(AktRabotItemForm): diff --git a/project/docs/forms/aktsverki.py b/project/docs/forms/aktsverki.py index 084ca47..87e3e97 100644 --- a/project/docs/forms/aktsverki.py +++ b/project/docs/forms/aktsverki.py @@ -40,7 +40,8 @@ class AktSverkiAdminForm(AktSverkiForm): } class Meta(AktSverkiForm.Meta): - fields = None + # fields = None + exclude = () def __init__(self, *args, **kwargs): # обязательно нужно вызывать родительский __init__ и передавать ему None вместо user - иначе глюки ! @@ -52,6 +53,7 @@ class AktSverkiItemForm(MyBaseModelForm): class Meta: model = AktSverkiItem exclude = ['parent'] + fields = '__all__' class AktSverkiItemAdminForm(AktSverkiItemForm): diff --git a/project/docs/forms/base_forms.py b/project/docs/forms/base_forms.py index e0e1fdd..259170f 100644 --- a/project/docs/forms/base_forms.py +++ b/project/docs/forms/base_forms.py @@ -2,9 +2,9 @@ from django.forms import ModelChoiceField import autocomplete_light -from project.commons.forms import MyBaseModelForm -from project.customer.models import BankAccount, Client -from project.docs.models import Invoice +from commons.forms import MyBaseModelForm +from customer.models import BankAccount, Client +from docs.models import Invoice class BaseModelForm(MyBaseModelForm): diff --git a/project/docs/forms/dover.py b/project/docs/forms/dover.py index 8bbc76c..7617abc 100644 --- a/project/docs/forms/dover.py +++ b/project/docs/forms/dover.py @@ -34,7 +34,8 @@ class DoverForm(BaseModelForm): class DoverAdminForm(DoverForm): """Форма редактирования доверенности на получение ТМЦ - для админки.""" class Meta(DoverForm.Meta): - fields = None + # fields = None + exclude = () def __init__(self, *args, **kwargs): # обязательно нужно вызывать родительский __init__ и передавать ему None вместо user - иначе глюки ! @@ -46,6 +47,7 @@ class DoverItemForm(MyBaseModelForm): class Meta: model = DoverItem exclude = ['parent'] + fields = '__all__' class DoverItemAdminForm(DoverItemForm): diff --git a/project/docs/forms/faktura.py b/project/docs/forms/faktura.py index bb7b93c..0155e86 100644 --- a/project/docs/forms/faktura.py +++ b/project/docs/forms/faktura.py @@ -3,10 +3,10 @@ from django import forms import autocomplete_light -from project.commons.forms import MyBaseModelForm -from .base_forms import BaseModelForm -from ..models import Faktura, FakturaItem -from project.customer.models import Client +from commons.forms import MyBaseModelForm +from docs.forms.base_forms import BaseModelForm +from docs.models import Faktura, FakturaItem +from customer.models import Client class FakturaForm(BaseModelForm): @@ -38,7 +38,8 @@ class FakturaForm(BaseModelForm): class FakturaAdminForm(FakturaForm): """Форма редактирования фактуры - для админки.""" class Meta(FakturaForm.Meta): - fields = None + # fields = None + exclude = () _textarea = forms.Textarea(attrs={'cols': 80, 'rows': 3}) widgets = { 'doc_text': _textarea, @@ -55,6 +56,7 @@ class FakturaItemForm(MyBaseModelForm): class Meta: model = FakturaItem exclude = ['parent'] + fields = '__all__' class FakturaItemAdminForm(FakturaItemForm): diff --git a/project/docs/forms/invoice.py b/project/docs/forms/invoice.py index 1d8001d..a4fc44b 100644 --- a/project/docs/forms/invoice.py +++ b/project/docs/forms/invoice.py @@ -3,8 +3,8 @@ from django import forms from project.commons.forms import MyBaseModelForm -from .base_forms import BaseModelForm -from ..models import Invoice, InvoiceItem +from docs.forms.base_forms import BaseModelForm +from docs.models import Invoice, InvoiceItem class InvoiceForm(BaseModelForm): @@ -26,7 +26,8 @@ class InvoiceForm(BaseModelForm): class InvoiceAdminForm(InvoiceForm): """Форма редактирования счета - для админки.""" class Meta(InvoiceForm.Meta): - fields = None + # fields = None + exclude = () _textarea = forms.Textarea(attrs={'cols': 80, 'rows': 3}) widgets = { 'doc_text': _textarea, @@ -51,6 +52,7 @@ class InvoiceItemForm(MyBaseModelForm): class Meta: model = InvoiceItem exclude = ['parent'] + fields = '__all__' class InvoiceItemAdminForm(InvoiceItemForm): diff --git a/project/docs/forms/nakladn.py b/project/docs/forms/nakladn.py index 315fda7..76d56fe 100644 --- a/project/docs/forms/nakladn.py +++ b/project/docs/forms/nakladn.py @@ -27,7 +27,8 @@ class NakladnForm(BaseModelForm): class NakladnAdminForm(NakladnForm): """Форма редактирования накладной - для админки.""" class Meta(NakladnForm.Meta): - fields = None + # fields = None + exclude = () _textarea = forms.Textarea(attrs={'cols': 80, 'rows': 3}) widgets = { 'doc_text': _textarea, @@ -43,6 +44,7 @@ class NakladnItemForm(MyBaseModelForm): class Meta: model = NakladnItem exclude = ['parent'] + fields = '__all__' class NakladnItemAdminForm(NakladnItemForm): diff --git a/project/docs/forms/platejka.py b/project/docs/forms/platejka.py index 642876d..39b286f 100644 --- a/project/docs/forms/platejka.py +++ b/project/docs/forms/platejka.py @@ -69,7 +69,8 @@ class PlatejkaForm(BaseModelForm): class PlatejkaAdminForm(PlatejkaForm): """Форма редактирования платежного поручения - для админки.""" class Meta(PlatejkaForm.Meta): - fields = None + # fields = None + exclude = () widgets = { 'doc_info': forms.Textarea(attrs={'cols': 80, 'rows': 5}), } diff --git a/project/docs/models/__init__.py b/project/docs/models/__init__.py index 0c28ab7..ee6bd8c 100644 --- a/project/docs/models/__init__.py +++ b/project/docs/models/__init__.py @@ -1,8 +1,8 @@ -from .refs import Currency, Country, Measure -from .invoice import Invoice, InvoiceItem -from .aktrabot import AktRabot, AktRabotItem -from .aktsverki import AktSverki, AktSverkiItem -from .dover import Dover, DoverItem -from .platejka import Platejka -from .nakladn import Nakladn, NakladnItem -from .faktura import Faktura, FakturaItem +from docs.models.refs import Currency, Country, Measure +from docs.models.invoice import Invoice, InvoiceItem +from docs.models.aktrabot import AktRabot, AktRabotItem +from docs.models.aktsverki import AktSverki, AktSverkiItem +from docs.models.dover import Dover, DoverItem +from docs.models.platejka import Platejka +from docs.models.nakladn import Nakladn, NakladnItem +from docs.models.faktura import Faktura, FakturaItem diff --git a/project/docs/models/aktrabot.py b/project/docs/models/aktrabot.py index a674522..bb59529 100644 --- a/project/docs/models/aktrabot.py +++ b/project/docs/models/aktrabot.py @@ -1,9 +1,9 @@ # -*- coding: utf-8 -*- from django.db import models -from .base_models import BaseInvoiceModel, BaseItemInvoiceModel -from .mixins import SignedStatusFieldMixin, InvoiceFieldMixin -from .linked_docs_mixin import LinkedDocsMixin +from docs.models.base_models import BaseInvoiceModel, BaseItemInvoiceModel +from docs.models.mixins import SignedStatusFieldMixin, InvoiceFieldMixin +from docs.models.linked_docs_mixin import LinkedDocsMixin class AktRabot(BaseInvoiceModel, SignedStatusFieldMixin, InvoiceFieldMixin, LinkedDocsMixin): diff --git a/project/docs/models/aktsverki.py b/project/docs/models/aktsverki.py index 0ca34cf..e99cc0f 100644 --- a/project/docs/models/aktsverki.py +++ b/project/docs/models/aktsverki.py @@ -3,8 +3,8 @@ from decimal import Decimal from django.db import models -from .base_models import BaseModel, VeryBaseModel -from .mixins import SignedStatusFieldMixin +from docs.models.base_models import BaseModel, VeryBaseModel +from docs.models.mixins import SignedStatusFieldMixin class AktSverki(BaseModel, SignedStatusFieldMixin): diff --git a/project/docs/models/base_models.py b/project/docs/models/base_models.py index a85012e..e7d7e31 100644 --- a/project/docs/models/base_models.py +++ b/project/docs/models/base_models.py @@ -2,11 +2,11 @@ from django.db import models from django.conf import settings -from project.customer.models import UserProfile -from project.customer.models import Client, BankAccount +from customer.models import UserProfile +from customer.models import Client, BankAccount -from . import managers -from .. import consts +from docs.models import managers +from docs import consts class VeryBaseModel(models.Model): diff --git a/project/docs/models/dover.py b/project/docs/models/dover.py index 3dd4046..f2b7209 100644 --- a/project/docs/models/dover.py +++ b/project/docs/models/dover.py @@ -1,7 +1,7 @@ # -*- coding: utf-8 -*- from django.db import models -from .base_models import BaseModel, VeryBaseModel +from docs.models.base_models import BaseModel, VeryBaseModel class Dover(BaseModel): diff --git a/project/docs/models/faktura.py b/project/docs/models/faktura.py index 38bc9c6..c8fdb5e 100644 --- a/project/docs/models/faktura.py +++ b/project/docs/models/faktura.py @@ -1,11 +1,11 @@ # -*- coding: utf-8 -*- from django.db import models -from project.customer.models import Client -from .base_models import BaseInvoiceModel, BaseItemInvoiceModel -from .refs import Currency, Country, Measure -from .mixins import SignedStatusFieldMixin, InvoiceFieldMixin -from .linked_docs_mixin import LinkedDocsMixin +from customer.models import Client +from docs.models.base_models import BaseInvoiceModel, BaseItemInvoiceModel +from docs.models.refs import Currency, Country, Measure +from docs.models.mixins import SignedStatusFieldMixin, InvoiceFieldMixin +from docs.models.linked_docs_mixin import LinkedDocsMixin class Faktura(BaseInvoiceModel, SignedStatusFieldMixin, InvoiceFieldMixin, LinkedDocsMixin): @@ -19,7 +19,7 @@ class Faktura(BaseInvoiceModel, SignedStatusFieldMixin, InvoiceFieldMixin, Linke receiver = models.ForeignKey(Client, related_name='receiver_fakturas', blank=True, null=True, verbose_name=u'Получатель') plat_doc_num = models.CharField(u'Номер платёжного документа', max_length=30, blank=True, default='') plat_doc_date = models.DateField('Дата платёжного документа', blank=True, null=True) - fix_doc_num = models.PositiveIntegerField(u'Номер исправления', max_length=30, null=True, blank=True) + fix_doc_num = models.PositiveIntegerField(u'Номер исправления', null=True, blank=True) fix_doc_date = models.DateField('Дата исправления', blank=True, null=True) def get_consignor_and_address(self): diff --git a/project/docs/models/invoice.py b/project/docs/models/invoice.py index 9126160..09dd484 100644 --- a/project/docs/models/invoice.py +++ b/project/docs/models/invoice.py @@ -1,9 +1,9 @@ # -*- coding: utf-8 -*- from django.db import models -from .base_models import BaseInvoiceModel, BaseItemInvoiceModel -from .linked_docs_mixin import LinkedDocsMixin -from .. import consts +from base_models import BaseInvoiceModel, BaseItemInvoiceModel +from linked_docs_mixin import LinkedDocsMixin +from docs import consts class Invoice(BaseInvoiceModel, LinkedDocsMixin): diff --git a/project/docs/models/mixins.py b/project/docs/models/mixins.py index 1d3b461..fa332f2 100644 --- a/project/docs/models/mixins.py +++ b/project/docs/models/mixins.py @@ -1,8 +1,8 @@ # -*- coding: utf-8 -*- from django.db import models -from .invoice import Invoice -from .. import consts +from docs.models.invoice import Invoice +from docs import consts class SignedStatusFieldMixin(models.Model): diff --git a/project/docs/models/nakladn.py b/project/docs/models/nakladn.py index b0bb408..cac670c 100644 --- a/project/docs/models/nakladn.py +++ b/project/docs/models/nakladn.py @@ -1,9 +1,9 @@ # -*- coding: utf-8 -*- from django.db import models -from .base_models import BaseInvoiceModel, BaseItemInvoiceModel -from .mixins import SignedStatusFieldMixin, InvoiceFieldMixin -from .linked_docs_mixin import LinkedDocsMixin +from docs.models.base_models import BaseInvoiceModel, BaseItemInvoiceModel +from docs.models.mixins import SignedStatusFieldMixin, InvoiceFieldMixin +from docs.models.linked_docs_mixin import LinkedDocsMixin class Nakladn(BaseInvoiceModel, SignedStatusFieldMixin, InvoiceFieldMixin, LinkedDocsMixin): diff --git a/project/docs/models/platejka.py b/project/docs/models/platejka.py index 6bb5bca..45ebfa8 100644 --- a/project/docs/models/platejka.py +++ b/project/docs/models/platejka.py @@ -1,10 +1,10 @@ # -*- coding: utf-8 -*- from django.db import models -from project.customer.models import BankAccount +from customer.models import BankAccount -from .base_models import BaseModel -from .. import consts +from docs.models.base_models import BaseModel +from docs import consts class Platejka(BaseModel): diff --git a/project/docs/urls.py b/project/docs/urls.py index 3a2c231..3af28ba 100644 --- a/project/docs/urls.py +++ b/project/docs/urls.py @@ -1,8 +1,8 @@ # -*- coding: UTF-8 -*- from django.conf.urls import * -from .views import (InvoiceViews, AktRabotViews, AktSverkiViews, DoverViews, PlatejkaViews, NakladnViews, FakturaViews) -from .views import getview, index, get_invoices, get_tbl_items, get_client_by_invoice, toggle_doc_status +from docs.views import (InvoiceViews, AktRabotViews, AktSverkiViews, DoverViews, PlatejkaViews, NakladnViews, FakturaViews) +from docs.views import getview, index, get_invoices, get_tbl_items, get_client_by_invoice, toggle_doc_status urlpatterns = patterns('docs.views', diff --git a/project/docs/views/__init__.py b/project/docs/views/__init__.py index fa03be4..1478ba7 100644 --- a/project/docs/views/__init__.py +++ b/project/docs/views/__init__.py @@ -4,14 +4,14 @@ from django.contrib.auth.decorators import login_required from django.http import Http404 from django.conf import settings -from .invoice import InvoiceViews -from .aktrabot import AktRabotViews -from .aktsverki import AktSverkiViews -from .dover import DoverViews -from .platejka import PlatejkaViews -from .nakladn import NakladnViews -from .faktura import FakturaViews -from .ajax import get_invoices, get_tbl_items, get_client_by_invoice, toggle_doc_status +from docs.views.invoice import InvoiceViews +from docs.views.aktrabot import AktRabotViews +from docs.views.aktsverki import AktSverkiViews +from docs.views.dover import DoverViews +from docs.views.platejka import PlatejkaViews +from docs.views.nakladn import NakladnViews +from docs.views.faktura import FakturaViews +from docs.views.ajax import get_invoices, get_tbl_items, get_client_by_invoice, toggle_doc_status @login_required # важно!!! diff --git a/project/docs/views/base_views.py b/project/docs/views/base_views.py index cc2bfed..a32dd0d 100644 --- a/project/docs/views/base_views.py +++ b/project/docs/views/base_views.py @@ -21,17 +21,17 @@ from django.core.mail import EmailMessage from django.utils.encoding import smart_str from django.conf import settings -from project.commons.utils import dthandler -from project.commons.paginator import pagination, save_per_page_value -from project.commons.pdf_tools import render_pdf_to_string, pdf_to_response -from project.commons.xls import xls_to_response +from commons.utils import dthandler +from commons.paginator import pagination, save_per_page_value +from commons.pdf_tools import render_pdf_to_string, pdf_to_response +from commons.xls import xls_to_response -from project.customer.models import get_profile, BankAccount -from project.customer.forms import ClientsListForm, ClientForm +from customer.models import get_profile, BankAccount +from customer.forms import ClientsListForm, ClientForm -from ..as_xls import render_xls_to_string -from ..forms import EmailForm, InvoicesListForm -from .. import filters +from docs.as_xls import render_xls_to_string +from docs.forms import EmailForm, InvoicesListForm +from docs import filters from project.customer.decorators import license_required from project.customer.utils import raise_if_no_profile diff --git a/project/docs/views/invoice.py b/project/docs/views/invoice.py index 8773df4..83ed744 100644 --- a/project/docs/views/invoice.py +++ b/project/docs/views/invoice.py @@ -3,12 +3,12 @@ from decimal import Decimal from project.customer.forms import ClientsListForm -from ..models import Invoice, InvoiceItem -from ..forms import InvoiceForm, InvoiceItemForm -from ..filters import InvoiceFilterSet -from .. import utils +from docs.models import Invoice, InvoiceItem +from docs.forms import InvoiceForm, InvoiceItemForm +from docs.filters import InvoiceFilterSet +from docs import utils -from .base_views import BaseItemsViews +from docs.views.base_views import BaseItemsViews class InvoiceViews(BaseItemsViews): diff --git a/project/myauth/__init__.py b/project/myauth/__init__.py index 8b13789..dad5c63 100644 --- a/project/myauth/__init__.py +++ b/project/myauth/__init__.py @@ -1 +1,2 @@ - +# -*- coding: utf-8 -*- +default_app_config = "myauth.apps.MyAuthConfig" diff --git a/project/myauth/apps.py b/project/myauth/apps.py new file mode 100644 index 0000000..e5f1751 --- /dev/null +++ b/project/myauth/apps.py @@ -0,0 +1,7 @@ +# -*- coding: utf-8 -*- +from django.apps import AppConfig + + +class MyAuthConfig(AppConfig): + name = 'myauth' + diff --git a/project/myauth/emails.py b/project/myauth/emails.py index 5028834..e64de77 100644 --- a/project/myauth/emails.py +++ b/project/myauth/emails.py @@ -2,13 +2,13 @@ from django.template.loader import render_to_string from django.core.mail import EmailMessage from django.conf import settings -from celery.decorators import task +# from celery import shared_task SUPPORT_EMAIL = getattr(settings, 'SUPPORT_EMAIL', '') -@task +# @shared_task def send_registration_email(user_email, confirm_url): """Отправить письмо о регистрации нового пользователя.""" template_name = 'myauth/registration_email.txt' @@ -19,7 +19,7 @@ def send_registration_email(user_email, confirm_url): return email.send() -@task +# @shared_task def send_reset_password_email(user_email, confirm_url): """Отправить письмо с ключём для восстановления пароля.""" template_name = 'myauth/reset_key_email.txt' @@ -30,7 +30,7 @@ def send_reset_password_email(user_email, confirm_url): return email.send() -@task +# @shared_task def send_new_password_email(user_email, new_password): """Отправить письмо с новым паролем.""" template_name = 'myauth/reset_new_password_email.txt' diff --git a/project/myauth/forms.py b/project/myauth/forms.py index 40aa471..261c5d6 100644 --- a/project/myauth/forms.py +++ b/project/myauth/forms.py @@ -210,4 +210,5 @@ class CustomUserCreationForm(UserCreationForm): class CustomUserChangeForm(UserChangeForm): class Meta: model = DokUser + fields = '__all__' diff --git a/project/myauth/models.py b/project/myauth/models.py index 6e2729f..73401f3 100644 --- a/project/myauth/models.py +++ b/project/myauth/models.py @@ -2,7 +2,6 @@ from django.db import models from django.conf import settings from django.core.validators import RegexValidator, MinLengthValidator -#from django.contrib.auth.models import AbstractUser from django.utils import timezone from django.utils.http import urlquote from django.utils.translation import ugettext_lazy as _ @@ -30,10 +29,11 @@ class DokUser(AbstractBaseUser, PermissionsMixin): date_joined = models.DateTimeField(_('date joined'), default=timezone.now) profile = models.ForeignKey('customer.UserProfile', null=True, related_name='users') - objects = managers.CustomUserManager() + objects = managers.CustomUserManager() USERNAME_FIELD = 'username' REQUIRED_FIELDS = ['email'] + class Meta: verbose_name = _('user') verbose_name_plural = _('users') diff --git a/project/myauth/views.py b/project/myauth/views.py index 37e4202..6a6f324 100644 --- a/project/myauth/views.py +++ b/project/myauth/views.py @@ -15,9 +15,9 @@ from django.conf import settings from django.contrib.sessions.models import Session from django.contrib.auth.views import logout as django_logout -from project.customer.models import UserProfile, UserProfileFilters, License +from customer.models import UserProfile, UserProfileFilters, License -from . import forms, models, emails +from myauth import forms, models, emails REGISTRATION_OPEN = getattr(settings, 'REGISTRATION_OPEN', True) diff --git a/project/settings.py b/project/settings.py index f0b852d..04f1ef2 100644 --- a/project/settings.py +++ b/project/settings.py @@ -6,6 +6,12 @@ import os import sys from imp import find_module +BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) +ROOT_DIR = os.path.dirname( + os.path.dirname(os.path.dirname(os.path.abspath(__file__)))) + +print BASE_DIR + path = lambda *xs: os.path.abspath(os.path.join(os.path.dirname(__file__), *xs)) sys.path.insert(1, path('..')) @@ -21,17 +27,6 @@ ADMINS = ( MANAGERS = ADMINS -DATABASES = { - 'default': { - 'ENGINE': 'django.db.backends.', # Add 'postgresql_psycopg2', 'mysql', 'sqlite3' or 'oracle'. - 'NAME': '', # Or path to database file if using sqlite3. - # The following settings are not used with sqlite3: - 'USER': '', - 'PASSWORD': '', - 'HOST': '', # Empty for localhost through domain sockets or '127.0.0.1' for localhost through TCP. - 'PORT': '', # Set to empty string for default. - } -} # Hosts/domain names that are valid for this site; required if DEBUG is False # See https://docs.djangoproject.com/en/1.5/ref/settings/#allowed-hosts @@ -66,7 +61,6 @@ USE_TZ = True # Absolute filesystem path to the directory that will hold user-uploaded files. # Example: "/var/www/example.com/media/" -#MEDIA_ROOT = path('../_public_html/media') MEDIA_ROOT = path('../media') # URL that handles the media served from MEDIA_ROOT. Make sure to use a @@ -74,7 +68,6 @@ MEDIA_ROOT = path('../media') # Examples: "http://example.com/media/", "http://media.example.com/" MEDIA_URL = '/m/' -# STATIC_ROOT = path('../_public_html/static') STATIC_ROOT = path('../static') # URL prefix for static files. @@ -89,23 +82,10 @@ STATICFILES_DIRS = ( path('static'), ) -# List of finder classes that know how to find static files in -# various locations. -STATICFILES_FINDERS = ( - 'django.contrib.staticfiles.finders.FileSystemFinder', - 'django.contrib.staticfiles.finders.AppDirectoriesFinder', -# 'django.contrib.staticfiles.finders.DefaultStorageFinder', -) # Make this unique, and don't share it with anybody. SECRET_KEY = 'uqrv8bpqt-#up^ay-)^@bcjjgq1^jy8qc!fkr!1wd*u%)1dg#y' -# List of callables that know how to import templates from various sources. -TEMPLATE_LOADERS = ( - 'django.template.loaders.filesystem.Loader', - 'django.template.loaders.app_directories.Loader', -# 'django.template.loaders.eggs.Loader', -) MIDDLEWARE_CLASSES = ( 'django.contrib.sessions.middleware.SessionMiddleware', @@ -116,7 +96,7 @@ MIDDLEWARE_CLASSES = ( 'django.contrib.messages.middleware.MessageMiddleware', # Uncomment the next line for simple clickjacking protection: 'django.middleware.clickjacking.XFrameOptionsMiddleware', - 'django.middleware.doc.XViewMiddleware', + # 'django.middleware.doc.XViewMiddleware', 'cms.middleware.page.CurrentPageMiddleware', 'cms.middleware.user.CurrentUserMiddleware', 'cms.middleware.toolbar.ToolbarMiddleware', @@ -127,24 +107,48 @@ MIDDLEWARE_CLASSES = ( 'project.customer.middleware.ProfileMiddleware', ) -TEMPLATE_CONTEXT_PROCESSORS = ( - 'django.contrib.auth.context_processors.auth', - 'django.contrib.messages.context_processors.messages', - 'django.core.context_processors.i18n', - 'django.core.context_processors.request', - 'django.core.context_processors.media', - 'django.core.context_processors.static', - 'cms.context_processors.cms_settings', - 'sekizai.context_processors.sekizai', - 'project.callback.context_processors.add_forms', - 'project.customer.context_processors.license_check_soon_ends', -) - +# CHECK +# MIDDLEWARE_CLASSES = ( +# 'cms.middleware.utils.ApphookReloadMiddleware', +# 'django.contrib.sessions.middleware.SessionMiddleware', +# 'django.middleware.csrf.CsrfViewMiddleware', +# 'django.contrib.auth.middleware.AuthenticationMiddleware', +# 'django.contrib.messages.middleware.MessageMiddleware', +# 'django.middleware.locale.LocaleMiddleware', +# 'django.middleware.common.CommonMiddleware', +# 'cms.middleware.user.CurrentUserMiddleware', +# 'cms.middleware.page.CurrentPageMiddleware', +# 'cms.middleware.toolbar.ToolbarMiddleware', +# 'cms.middleware.language.LanguageCookieMiddleware', +# ) + + +TEMPLATES = [ + { + 'BACKEND': 'django.template.backends.django.DjangoTemplates', + 'DIRS': [ + # os.path.join(BASE_DIR, 'templates'), + path('templates'), -ROOT_URLCONF = 'project.urls' - -# Python dotted path to the WSGI application used by Django's runserver. -WSGI_APPLICATION = 'project.wsgi.application' + ], + 'APP_DIRS': True, + 'OPTIONS': { + 'context_processors': [ + 'django.contrib.auth.context_processors.auth', + 'django.template.context_processors.debug', + 'django.template.context_processors.i18n', + 'django.template.context_processors.media', + 'django.template.context_processors.static', + 'django.template.context_processors.tz', + 'django.contrib.messages.context_processors.messages', + 'django.template.context_processors.request', + 'django.template.context_processors.csrf', + 'sekizai.context_processors.sekizai', + 'cms.context_processors.cms_settings', + ], + }, + }, +] TEMPLATE_DIRS = ( # Put strings here, like "/home/html/django_templates" or "C:/www/django/templates". @@ -153,18 +157,28 @@ TEMPLATE_DIRS = ( path('templates'), ) + +ROOT_URLCONF = 'project.urls' + +# Python dotted path to the WSGI application used by Django's runserver. +WSGI_APPLICATION = 'project.wsgi.application' + + INSTALLED_APPS = ( + + 'myauth', + 'djangocms_admin_style', + 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', - 'django.contrib.sites', 'django.contrib.messages', + 'django.contrib.sites', + 'django.contrib.sitemaps', 'django.contrib.staticfiles', - # Uncomment the next line to enable the admin: + 'django.contrib.admindocs', 'pytils', - # 'sorl.thumbnail', - # 'django_filters', 'autocomplete_light', 'cms', # django CMS itself 'mptt', # utilities for implementing a modified pre-order traversal tree @@ -172,41 +186,19 @@ INSTALLED_APPS = ( 'sekizai', # for javascript and css management 'captcha', 'yandex_money', - 'djangocms_admin_style', # for the admin skin. You **must** add 'djangocms_admin_style' in the list before 'django.contrib.admin'. - 'django.contrib.messages', # to enable messages framework (see :ref:`Enable messages `) 'filer', 'easy_thumbnails', - 'djangocms_file', - 'djangocms_flash', - 'djangocms_googlemap', - 'djangocms_inherit', - 'djangocms_picture', - 'djangocms_teaser', - 'djangocms_video', - 'djangocms_link', - 'djangocms_snippet', - 'djangocms_text_ckeditor', - 'cmsplugin_filer_file', - 'cmsplugin_filer_folder', - 'cmsplugin_filer_link', - 'cmsplugin_filer_image', - 'cmsplugin_filer_teaser', - 'cmsplugin_filer_video', - 'djangocms_ckeditor_filer', - 'django.contrib.admin', - 'django.contrib.admindocs', + 'treebeard', # my apps - 'project.commons', - 'project.myauth', - 'project.customer', - 'project.docs', - 'project.pages', - 'project.callback', - 'project.index_blocks', - - # keep it last - 'south', + + 'commons', + 'customer', + 'docs', + 'pages', + 'callback', + # 'project.index_blocks', + ) AUTH_USER_MODEL = 'myauth.DokUser' @@ -334,6 +326,7 @@ CKEDITOR_SETTINGS = { 'removePlugins': 'image' } TEXT_SAVE_IMAGE_FUNCTION = 'cmsplugin_filer_image.integrations.ckeditor.create_image_plugin' + THUMBNAIL_PROCESSORS = ( 'easy_thumbnails.processors.colorspace', 'easy_thumbnails.processors.autocrop', diff --git a/project/urls.py b/project/urls.py index ce9ebec..81c3d85 100644 --- a/project/urls.py +++ b/project/urls.py @@ -21,13 +21,13 @@ urlpatterns = patterns('', # Uncomment the next line to enable the admin: url(r'^admin/', include(admin.site.urls)), url(r'autocomplete/', include('autocomplete_light.urls')), - url(r'^$', 'project.pages.views.site_index', name='site_index'), - url(r'^my/', include('project.customer.urls')), + url(r'^$', 'pages.views.site_index', name='site_index'), + url(r'^my/', include('customer.urls')), - url(r'^my/docs/', include('project.docs.urls')), - url(r'^my/callback/', include('project.callback.urls')), + url(r'^my/docs/', include('docs.urls')), + url(r'^my/callback/', include('callback.urls')), - url(r'^user/', include('project.myauth.urls')), + url(r'^user/', include('myauth.urls')), url(r'^captcha/', include('captcha.urls')), url(r'^yandex-money/', include('yandex_money.urls')), url(r'^', include('cms.urls')),