kopia lustrzana https://github.com/OpenDroneMap/WebODM
CodeMirror widget, CSS/HTML fields
rodzic
b255fa8d6e
commit
913dccb8cf
34
app/admin.py
34
app/admin.py
|
@ -3,6 +3,8 @@ from guardian.admin import GuardedModelAdmin
|
|||
|
||||
from app.models import Preset
|
||||
from .models import Project, Task, ImageUpload, Setting, Theme
|
||||
from django import forms
|
||||
from codemirror2.widgets import CodeMirrorEditor
|
||||
|
||||
admin.site.register(Project, GuardedModelAdmin)
|
||||
|
||||
|
@ -19,10 +21,40 @@ admin.site.register(Preset, admin.ModelAdmin)
|
|||
|
||||
|
||||
class SettingAdmin(admin.ModelAdmin):
|
||||
|
||||
|
||||
def has_add_permission(self, request):
|
||||
# if there's already an entry, do not allow adding
|
||||
count = Setting.objects.all().count()
|
||||
return count == 0
|
||||
|
||||
admin.site.register(Setting, SettingAdmin)
|
||||
admin.site.register(Theme, admin.ModelAdmin)
|
||||
|
||||
|
||||
class ThemeModelForm(forms.ModelForm):
|
||||
css = forms.CharField(help_text="Enter custom CSS",
|
||||
required=False,
|
||||
widget=CodeMirrorEditor(options={'mode': 'css', 'lineNumbers': True}))
|
||||
html_before_header = forms.CharField(help_text="HTML that will be displayed above site header",
|
||||
required=False,
|
||||
widget=CodeMirrorEditor(options={'mode': 'xml', 'lineNumbers': True}))
|
||||
html_after_header = forms.CharField(help_text="HTML that will be displayed after site header",
|
||||
required=False,
|
||||
widget=CodeMirrorEditor(options={'mode': 'xml', 'lineNumbers': True}))
|
||||
html_after_body = forms.CharField(help_text="HTML that will be displayed after the </body> tag",
|
||||
required=False,
|
||||
widget=CodeMirrorEditor(options={'mode': 'xml', 'lineNumbers': True}))
|
||||
html_footer = forms.CharField(help_text="HTML that will be displayed in the footer",
|
||||
required=False,
|
||||
widget=CodeMirrorEditor(options={'mode': 'xml', 'lineNumbers': True}))
|
||||
|
||||
class Meta:
|
||||
model = Theme
|
||||
fields = '__all__'
|
||||
|
||||
|
||||
class ThemeAdmin(admin.ModelAdmin):
|
||||
#list_display = ('id', 'description_en', 'description_ua', 'description_ru')
|
||||
form = ThemeModelForm
|
||||
|
||||
admin.site.register(Theme, ThemeAdmin)
|
|
@ -71,8 +71,8 @@ def boot():
|
|||
Preset.objects.get_or_create(name='Default', system=True, options=[{'name': 'dsm', 'value': True}])
|
||||
|
||||
# Add settings
|
||||
Setting.objects.all().delete()
|
||||
Theme.objects.all().delete()
|
||||
# Setting.objects.all().delete()
|
||||
# Theme.objects.all().delete()
|
||||
|
||||
default_theme, created = Theme.objects.get_or_create(name='Default')
|
||||
if created:
|
||||
|
|
|
@ -1,8 +1,10 @@
|
|||
import logging
|
||||
|
||||
from codemirror2.widgets import CodeMirrorEditor
|
||||
from django.db import models
|
||||
from colorfield.fields import ColorField
|
||||
|
||||
|
||||
logger = logging.getLogger('app.logger')
|
||||
|
||||
class Theme(models.Model):
|
||||
|
@ -26,6 +28,12 @@ class Theme(models.Model):
|
|||
failed = ColorField(default='#ffcbcb', help_text="The background color of failed notifications.")
|
||||
success = ColorField(default='#cbffcd', help_text="The background color of success notifications.")
|
||||
|
||||
css = models.TextField(default='', blank=True)
|
||||
html_before_header = models.TextField(default='', blank=True)
|
||||
html_after_header = models.TextField(default='', blank=True)
|
||||
html_after_body = models.TextField(default='', blank=True)
|
||||
html_footer = models.TextField(default='', blank=True)
|
||||
|
||||
def __str__(self):
|
||||
return self.name
|
||||
|
||||
|
|
|
@ -19,6 +19,8 @@
|
|||
/* HEADER */
|
||||
/* SIDEBAR */
|
||||
/* POPUP */ }
|
||||
.admin-area .CodeMirror-scroll, .admin-area .CodeMirror {
|
||||
height: 150px !important; }
|
||||
.admin-area #changelist-filter {
|
||||
display: none; }
|
||||
.admin-area a:link, .admin-area a:visited {
|
||||
|
|
File diff suppressed because one or more lines are too long
|
@ -3,6 +3,10 @@
|
|||
*/
|
||||
|
||||
.admin-area{
|
||||
.CodeMirror-scroll, .CodeMirror{
|
||||
height: 150px !important;
|
||||
}
|
||||
|
||||
#changelist-filter{
|
||||
display: none;
|
||||
}
|
||||
|
|
|
@ -4,6 +4,7 @@ APScheduler==3.2.0
|
|||
coreapi==2.0.9
|
||||
Django==1.11.1
|
||||
django-appconf==1.0.2
|
||||
django-codemirror2==0.2
|
||||
django-colorfield==0.1.14
|
||||
django-cors-headers==2.0.2
|
||||
django-debug-toolbar==1.6
|
||||
|
|
|
@ -71,6 +71,7 @@ INSTALLED_APPS = [
|
|||
'corsheaders',
|
||||
'colorfield',
|
||||
'imagekit',
|
||||
'codemirror2',
|
||||
# 'debug_toolbar',
|
||||
'app',
|
||||
'nodeodm',
|
||||
|
|
Ładowanie…
Reference in New Issue