Compare commits
2 Commits
1f43a00c7a
...
8455d64e31
Author | SHA1 | Date | |
---|---|---|---|
8455d64e31 | |||
57078c10c1 |
@ -54,6 +54,24 @@ INSTALLED_APPS = [
|
||||
# "otp_yubikey",
|
||||
"mixins",
|
||||
]
|
||||
|
||||
|
||||
# Performance optimisations
|
||||
CACHES = {
|
||||
"default": {
|
||||
"BACKEND": "django.core.cache.backends.redis.RedisCache",
|
||||
"LOCATION": "unix:///var/run/socks/redis.sock",
|
||||
"OPTIONS": {
|
||||
"db": "10",
|
||||
"parser_class": "redis.connection.PythonParser",
|
||||
"pool_class": "redis.BlockingConnectionPool",
|
||||
},
|
||||
}
|
||||
}
|
||||
# CACHE_MIDDLEWARE_ALIAS
|
||||
# CACHE_MIDDLEWARE_SECONDS
|
||||
# CACHE_MIDDLEWARE_KEY_PREFIX
|
||||
|
||||
CRISPY_TEMPLATE_PACK = "bulma"
|
||||
CRISPY_ALLOWED_TEMPLATE_PACKS = ("bulma",)
|
||||
DJANGO_TABLES2_TEMPLATE = "django-tables2/bulma.html"
|
||||
@ -69,6 +87,9 @@ MIDDLEWARE = [
|
||||
"django.contrib.messages.middleware.MessageMiddleware",
|
||||
"django.middleware.clickjacking.XFrameOptionsMiddleware",
|
||||
"django_htmx.middleware.HtmxMiddleware",
|
||||
# 'django.middleware.cache.UpdateCacheMiddleware',
|
||||
# 'django.middleware.common.CommonMiddleware',
|
||||
# 'django.middleware.cache.FetchFromCacheMiddleware',
|
||||
]
|
||||
|
||||
ROOT_URLCONF = "app.urls"
|
||||
|
@ -4,19 +4,19 @@ from django.contrib.auth.admin import UserAdmin
|
||||
from .forms import CustomUserCreationForm
|
||||
from .models import (
|
||||
Account,
|
||||
AssetGroup,
|
||||
AssetRestriction,
|
||||
Callback,
|
||||
Hook,
|
||||
NotificationSettings,
|
||||
Plan,
|
||||
RiskModel,
|
||||
Session,
|
||||
Signal,
|
||||
Strategy,
|
||||
Trade,
|
||||
TradingTime,
|
||||
User,
|
||||
NotificationSettings,
|
||||
RiskModel,
|
||||
AssetGroup,
|
||||
AssetRestriction,
|
||||
)
|
||||
|
||||
# admin.site.__class__ = OTPAdminSite
|
||||
@ -80,15 +80,27 @@ class StrategyAdmin(admin.ModelAdmin):
|
||||
class NotificationSettingsAdmin(admin.ModelAdmin):
|
||||
list_display = ("user", "ntfy_topic", "ntfy_url")
|
||||
|
||||
|
||||
class RiskModelAdmin(admin.ModelAdmin):
|
||||
list_display = ("user", "name", "description", "max_loss_percent", "max_risk_percent", "max_open_trades", "max_open_trades_per_symbol")
|
||||
list_display = (
|
||||
"user",
|
||||
"name",
|
||||
"description",
|
||||
"max_loss_percent",
|
||||
"max_risk_percent",
|
||||
"max_open_trades",
|
||||
"max_open_trades_per_symbol",
|
||||
)
|
||||
|
||||
|
||||
class AssetGroupAdmin(admin.ModelAdmin):
|
||||
list_display = ("user", "name", "description", "account")
|
||||
|
||||
|
||||
class AssetRestrictionAdmin(admin.ModelAdmin):
|
||||
list_display = ("user", "name", "description", "webhook_id", "group")
|
||||
|
||||
|
||||
admin.site.register(User, CustomUserAdmin)
|
||||
admin.site.register(Plan)
|
||||
admin.site.register(Session)
|
||||
|
@ -1,7 +1,7 @@
|
||||
# Generated by Django 4.1.6 on 2023-02-10 22:57
|
||||
|
||||
from django.db import migrations, models
|
||||
import django.db.models.deletion
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
@ -1,8 +1,10 @@
|
||||
{% load static %}
|
||||
{% load has_plan %}
|
||||
{% load cache %}
|
||||
|
||||
<!DOCTYPE html>
|
||||
<html lang="en-GB">
|
||||
{% cache 600 head %}
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
@ -195,8 +197,10 @@
|
||||
</script>
|
||||
<!-- End Piwik Code -->
|
||||
</head>
|
||||
{% endcache %}
|
||||
<body>
|
||||
|
||||
{% cache 600 nav request.user.id %}
|
||||
<nav class="navbar" role="navigation" aria-label="main navigation">
|
||||
<div class="navbar-brand">
|
||||
<a class="navbar-item" href="{% url 'home' %}">
|
||||
@ -310,6 +314,7 @@
|
||||
</div>
|
||||
</div>
|
||||
</nav>
|
||||
{% endcache %}
|
||||
<script>
|
||||
let deferredPrompt;
|
||||
const addBtn = document.querySelector('.add-button');
|
||||
|
@ -1,3 +1,5 @@
|
||||
import json
|
||||
|
||||
from django.contrib.auth.mixins import LoginRequiredMixin
|
||||
from django.http import HttpResponse
|
||||
from mixins.views import AbortSave, ObjectCreate, ObjectDelete, ObjectList, ObjectUpdate
|
||||
@ -8,7 +10,6 @@ from rest_framework.views import APIView
|
||||
from core.forms import AssetGroupForm, AssetRestrictionForm
|
||||
from core.models import AssetGroup, AssetRestriction
|
||||
from core.util import logs
|
||||
import json
|
||||
|
||||
log = logs.get_logger(__name__)
|
||||
|
||||
@ -65,7 +66,9 @@ class AssetRestrictionList(
|
||||
list_template = "partials/assetrestriction-list.html"
|
||||
model = AssetRestriction
|
||||
page_title = "List of asset restrictions. Linked to asset groups."
|
||||
page_subtitle = "Allows API calls to permit or prohibit trading on defined currency pairs."
|
||||
page_subtitle = (
|
||||
"Allows API calls to permit or prohibit trading on defined currency pairs."
|
||||
)
|
||||
|
||||
list_url_name = "assetrestrictions"
|
||||
list_url_args = ["type", "group"]
|
||||
|
@ -43,6 +43,8 @@ services:
|
||||
- ${PORTAINER_GIT_DIR}:/code
|
||||
- ${APP_DATABASE_FILE}:/conf/db.sqlite3
|
||||
- fisk_static:${STATIC_ROOT}
|
||||
volumes_from:
|
||||
- tmp
|
||||
env_file:
|
||||
- stack.env
|
||||
|
||||
@ -58,6 +60,8 @@ services:
|
||||
- ${PORTAINER_GIT_DIR}:/code
|
||||
- ${APP_DATABASE_FILE}:/conf/db.sqlite3
|
||||
- fisk_static:${STATIC_ROOT}
|
||||
volumes_from:
|
||||
- tmp
|
||||
env_file:
|
||||
- stack.env
|
||||
|
||||
@ -98,24 +102,33 @@ services:
|
||||
volumes:
|
||||
- /var/run/socks
|
||||
|
||||
# redis:
|
||||
# image: redis
|
||||
# command: redis-server /etc/redis.conf
|
||||
# ulimits:
|
||||
# nproc: 65535
|
||||
# nofile:
|
||||
# soft: 65535
|
||||
# hard: 65535
|
||||
# volumes:
|
||||
# - ${PORTAINER_GIT_DIR}/docker/redis.conf:/etc/redis.conf
|
||||
# - redis_data:/data
|
||||
# volumes_from:
|
||||
# - tmp
|
||||
# healthcheck:
|
||||
# test: "redis-cli -s /var/run/redis/redis.sock ping"
|
||||
# interval: 2s
|
||||
# timeout: 2s
|
||||
# retries: 15
|
||||
# For caching
|
||||
redis:
|
||||
image: redis
|
||||
container_name: redis_fisk
|
||||
command: redis-server /etc/redis.conf
|
||||
ulimits:
|
||||
nproc: 65535
|
||||
nofile:
|
||||
soft: 65535
|
||||
hard: 65535
|
||||
volumes:
|
||||
- ${PORTAINER_GIT_DIR}/docker/redis.conf:/etc/redis.conf
|
||||
- fisk_redis_data:/data
|
||||
volumes_from:
|
||||
- tmp
|
||||
healthcheck:
|
||||
test: "redis-cli -s /var/run/socks/redis.sock ping"
|
||||
interval: 2s
|
||||
timeout: 2s
|
||||
retries: 15
|
||||
|
||||
# pyroscope:
|
||||
# image: "pyroscope/pyroscope:latest"
|
||||
# ports:
|
||||
# - "4040:4040"
|
||||
# command:
|
||||
# - "server"
|
||||
|
||||
networks:
|
||||
default:
|
||||
@ -127,3 +140,4 @@ networks:
|
||||
|
||||
volumes:
|
||||
fisk_static: {}
|
||||
fisk_redis_data: {}
|
||||
|
@ -1,2 +1,2 @@
|
||||
unixsocket /var/run/redis/redis.sock
|
||||
unixsocket /var/run/socks/redis.sock
|
||||
unixsocketperm 777
|
@ -22,3 +22,7 @@ oandapyV20
|
||||
glom
|
||||
elasticsearch
|
||||
git+https://git.zm.is/XF/django-crud-mixins
|
||||
# pyroscope-io
|
||||
# For caching
|
||||
redis
|
||||
hiredis
|
||||
|
Loading…
Reference in New Issue
Block a user