Skip to main content

Финплатформа

Project description

Финплатформа

Финплатформа - готовое приложение для ведения бизнеса МФО, реализованная на фреймворке Django.

Установка

  • Разверните виртуальную среду virtualenv имя-директории-виртуальной-среды (например, venv)
  • Активируйте виртуальную среду source venv/bin/activate
  • Установите дистрибутив finplatform: pip install finplatform
    Если дистрибутив уже установлен, обновить его можно командой pip install --upgrade finplatform
    Если по каким-либо причинам при обновлении дистрибутива используется кешированная версия, то выполните обновление следующей командой pip install --upgrade finplatform --no-cache
  • Создайте директорию Вашего будущего приложения и перейдите в нее. (например, myapp)
  • Находясь внутри директории myapp создайте точку входа в Ваше приложение django-admin startproject myapp . (точка в конце команды обязательна, иначе будет создана директория myapp, а в ней еще одна myapp)
    Django создаст весь необходимый каркас, который необходимо немного настроить.
  • Откройте файл myapp/settings.py любым текстовым реадктором.
    Внесите следующие изменения:
    • После строки import os добавьте from finplatform.settings import *
    • Если Вы не планируете выполнять разработку Вашего проекта, установите переменную DEBUG = False
    • Переменную INSTALLED_APPS приведите к следующему виду
      INSTALLED_APPS = [ 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', ] + FINPLATFORM_APPS
      Другими словами, необходимо удалить строку django.contrib.admin и добавить к списку приложений FINPLATFORM_APPS.
      django.contrib.admin необходимо убрать, т.к. он уже включен в FINPLATFORM_APPS по причине переопределения некоторых шаблонов панели администрирования.
      • Переменную TEMPLATES приведите к следующему виду
        TEMPLATES = [ { 'BACKEND': 'django.template.backends.django.DjangoTemplates', 'DIRS': [], 'APP_DIRS': True, 'OPTIONS': { 'context_processors': [ 'django.template.context_processors.debug', 'django.template.context_processors.request', 'django.contrib.auth.context_processors.auth', 'django.contrib.messages.context_processors.messages', ] + FINPLATFORM_CONTEXT_PROCESSORS, }, }, ]
        Т.е. необходимо добавить FINPLATFORM_CONTEXT_PROCESSORS к контекст процессорам.
      • Добавьте настройки хранения/чтения статических файлов (css, js, images и пр.)
        STATIC_URL = '/assets/' STATIC_ROOT = 'assets'
        По умолчанию Django создает STATIC_URL = '/static/'. Рекомендуем изменить это имя на любое другое, например, assets, как в примере выше. Имя директории и URL могут отличаться друг от друга.
      • Определение директории, где система будет хранить файлы, загруженные пользователями системы
        MEDIA_ROOT = 'media' MEDIA_URL = '/media/'
        Имя директории и URL могут быть любыми и могут отличаться друг от друга.
      • При входе/выходе из системы выполняется редирект на главную страницу панели администрирования или на ее страницу авторизации соответственно. Если вы хотите изменить данное поведение, то добавьте следующие строки
        LOGIN_REDIRECT_URL = '/' LOGOUT_REDIRECT_URL = '/'
        При такой настройке редирект будет выполняться на главную страницу frontend'a системы. Вы можете указать любой необходимый Вам URL.
      • По умолчанию авторизация в Django выполняется по логину и паролю. Если Вы хотите изменить это поведение для возможности авторизации по email и паролю, добавьте следующий код
        AUTHENTICATION_BACKENDS = [ 'finplatform.auth.UserEmailBackend', ]
        Если вы хотите оставить возможность авторизации по логину и добавить возможность авторизации по email, то ваш код будет выглядеть следующим образом
        AUTHENTICATION_BACKENDS = [ 'finplatform.auth.UserEmailBackend', 'django.contrib.auth.backends.ModelBackend' ]
      • Логгирование. Пакет Финплатформа включает в себя настроенный логгер для собственного функционала. При необходимости, Вы можете расширить или полностью переопределить переменную LOGGING в Ваших настройках.
      • Дополнительно Вы можете задать любые настройки Django приложения. Все настройки и их описание можно прочитать по адресу: https://docs.djangoproject.com/en/2.0/ref/settings/
  • Выполните команду в консоли pyton manage.py migrate для инициализации базы данных системы.
  • Загрузите первоначальные данные в БД. Для этого необходимо выполнить команду в консоли py manage.py loaddata initial_data.json. Файл initial_data.json находится в каталоге finplatform вашей виртуальной среды. Вы можете скопировать этот файл в корневой каталог вашего проекта и выполнить команду выше либо прописать полный путь к файлу при выполнении команды.
  • Откройте файл myapp/urls.py любым текстовым редактором и внесите следующие изменения
    • После строки from django.urls import path добавьте from finplatform.urls import urlpatterns as fp_urlpatterns
    • Приведите переменную urlpatterns к следующему виду
      urlpatterns = [ url(r'^admin/', admin.site.urls), ] + fp_urlpatterns
  • Выполните команду в консоли python manage.py collectstatic

Если все прошло успешно, то установка дистрибутива завершена успешно. Вы можете запустить ваш сервер и пользоваться приложением.
Логин администратора: admin
Пароль администратора: start123
Логин и пароль можно изменить в панели администрирования: http://адрес-вашего-сервера/admin/

КЛАДР

Дистрибутив содержит модели для работы с БД КЛАДРа. Данные БД КЛАДРа не включены в дистрибутив, т.к. имеют большой объем. Чтобы добавить данные КЛАДРа в Вашу БД, необходимо:

  • Способ 1: Данный способ достаточно удобен, но не совсем верен, т.к. у Вашего сервера может не хватить ОЗУ, чтобы загрузить большой файл с данными. В таком случае воспользуйтесь способом 2.
    • Скачайте архив по ссылке http://git.ustinov-pro.ru:8090/roman/finplatform-dist/blob/master/fixtures/kladr/kladr-*.zip
    • Распакуйте скачанный архив в любое удобное для вас место, а затем выполните python manage.py loaddata /путь/к/распакованному/файлу/kladr_fixture.json
      Т.к. файл имеет большой размер, операция может занять достаточно длительное время.
  • Способ 2:

Периодические задания

В дистрибутив Финлатформы включены некоторые периодические задачи, такие как сопровождение клиентов, парсинг органов УФМС и другие. Для обеспечения работы периодических задач, создайте файл celery.py, например, в каталоге "точки входа в ваше приложение", по примерам выше, это myapp/myapp/
Вставьте следующий код в файл, замените YOUR_APP_NAME на имя вашего проекта (по примеру выше myapp) и сохраните его.
Данный код вы также сможете найти в finplatorm/celery.py вашей виртуальной среды. При обновлении версии дистрибутива данный файл также будет обновляться, при условии появления новых периодических задач. Файл находится в дистрибутиве для примера, не используйте его для реального исполнения.

import os
from celery import Celery
from celery.schedules import crontab
from django.conf import settings

os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'YOUR_APP_NAME.settings')

app = Celery('YOUR_APP_NAME')

app.config_from_object('django.conf:settings')

# Load task modules from all registered Django app configs.
app.autodiscover_tasks(settings.INSTALLED_APPS)

app.conf.beat_schedule = {
    'create-balance': {
        'task': 'finplatform.balances.tasks.auto_save_balance',
        'schedule': crontab(minute=1, hour=19),  # change to `crontab(minute=0, hour=0)` if you want it to run daily at midnight
    },
    'loans-management': {
        'task': 'finplatform.deals.management.tasks.do_management',
        'schedule': crontab(minute=1, hour=1), 
    },
    'ufms-parser': {
        'task': 'finplatform.services.ufms.tasks.parse',
        'schedule': crontab(minute=0, hour=0, day_of_month=1),
    }
}

Далее необходимо настроить исполнение этого файла на вашем сервере.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Filename, size & hash SHA256 hash help File type Python version Upload date
finplatform-1.0.56-py3-none-any.whl (4.3 MB) Copy SHA256 hash SHA256 Wheel py3
finplatform-1.0.56.tar.gz (3.6 MB) Copy SHA256 hash SHA256 Source None

Supported by

Elastic Elastic Search Pingdom Pingdom Monitoring Google Google BigQuery Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN SignalFx SignalFx Supporter DigiCert DigiCert EV certificate StatusPage StatusPage Status page