rewrote the config api
This commit is contained in:
parent
77b11d8edf
commit
bc05b78648
@ -14,7 +14,7 @@ from django.utils.translation import ugettext as _
|
|||||||
from django.contrib import messages
|
from django.contrib import messages
|
||||||
from django.core.context_processors import csrf
|
from django.core.context_processors import csrf
|
||||||
|
|
||||||
from openslides.system.api import config_get
|
from system import config
|
||||||
from projector.api import get_active_slide
|
from projector.api import get_active_slide
|
||||||
|
|
||||||
|
|
||||||
@ -22,7 +22,7 @@ def is_summary():
|
|||||||
"""
|
"""
|
||||||
True, if a summery shall be displayed
|
True, if a summery shall be displayed
|
||||||
"""
|
"""
|
||||||
if config_get('agenda_summary', False):
|
if config['agenda_summary']:
|
||||||
return True
|
return True
|
||||||
return False
|
return False
|
||||||
|
|
||||||
|
@ -18,9 +18,11 @@ except ImportError:
|
|||||||
from django.db import models
|
from django.db import models
|
||||||
from django.utils.translation import ugettext as _
|
from django.utils.translation import ugettext as _
|
||||||
|
|
||||||
|
from system import config
|
||||||
|
|
||||||
from projector.models import Slide
|
from projector.models import Slide
|
||||||
from projector.api import register_slidemodel
|
from projector.api import register_slidemodel
|
||||||
from system.api import config_set
|
|
||||||
from agenda.api import is_summary
|
from agenda.api import is_summary
|
||||||
|
|
||||||
|
|
||||||
@ -59,9 +61,9 @@ class Item(models.Model, Slide):
|
|||||||
"""
|
"""
|
||||||
Slide.set_active(self)
|
Slide.set_active(self)
|
||||||
if summary:
|
if summary:
|
||||||
config_set("agenda_summary", True)
|
config["agenda_summary"] = True
|
||||||
else:
|
else:
|
||||||
config_set("agenda_summary", '')
|
config["agenda_summary"] = False
|
||||||
|
|
||||||
def set_closed(self, closed=True):
|
def set_closed(self, closed=True):
|
||||||
"""
|
"""
|
||||||
|
@ -1,6 +1,5 @@
|
|||||||
from django.utils.translation import ugettext as _
|
from django.utils.translation import ugettext as _
|
||||||
|
|
||||||
from projector.api import register_slidefunc
|
|
||||||
from agenda.models import Item
|
from agenda.models import Item
|
||||||
|
|
||||||
def agenda_show():
|
def agenda_show():
|
||||||
|
@ -14,6 +14,8 @@ from django.core.urlresolvers import reverse
|
|||||||
from django.contrib import messages
|
from django.contrib import messages
|
||||||
from django.utils.translation import ugettext as _
|
from django.utils.translation import ugettext as _
|
||||||
|
|
||||||
|
from system import config
|
||||||
|
|
||||||
from projector.api import get_active_slide, set_active_slide
|
from projector.api import get_active_slide, set_active_slide
|
||||||
|
|
||||||
from agenda.models import Item
|
from agenda.models import Item
|
||||||
@ -21,8 +23,6 @@ from agenda.api import is_summary, children_list, \
|
|||||||
del_confirm_form_for_items
|
del_confirm_form_for_items
|
||||||
from agenda.forms import ItemOrderForm, ItemFormText
|
from agenda.forms import ItemOrderForm, ItemFormText
|
||||||
|
|
||||||
from system.api import config_set, config_get
|
|
||||||
|
|
||||||
from utils.utils import template, permission_required, \
|
from utils.utils import template, permission_required, \
|
||||||
del_confirm_form, ajax_request
|
del_confirm_form, ajax_request
|
||||||
from utils.pdf import print_agenda
|
from utils.pdf import print_agenda
|
||||||
@ -69,8 +69,8 @@ def overview(request):
|
|||||||
'items': items,
|
'items': items,
|
||||||
'overview': overview,
|
'overview': overview,
|
||||||
'summary': is_summary(),
|
'summary': is_summary(),
|
||||||
'countdown_visible': config_get('countdown_visible'),
|
'countdown_visible': config['countdown_visible'],
|
||||||
'countdown_time': config_get('agenda_countdown_time'),
|
'countdown_time': config['agenda_countdown_time'],
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -87,8 +87,8 @@ def set_active(request, item_id, summary=False):
|
|||||||
item.set_active(summary)
|
item.set_active(summary)
|
||||||
except Item.DoesNotExist:
|
except Item.DoesNotExist:
|
||||||
messages.error(request, _('Item ID %d does not exist.') % int(item_id))
|
messages.error(request, _('Item ID %d does not exist.') % int(item_id))
|
||||||
config_set("bigger", 100)
|
config["bigger"] = 100
|
||||||
config_set("up", 0)
|
config["up"] = 0
|
||||||
if request.is_ajax():
|
if request.is_ajax():
|
||||||
return ajax_request({'active': item_id, 'summary': summary})
|
return ajax_request({'active': item_id, 'summary': summary})
|
||||||
|
|
||||||
|
@ -21,7 +21,7 @@ from projector.api import register_slidemodel
|
|||||||
from projector.models import Slide
|
from projector.models import Slide
|
||||||
|
|
||||||
from participant.models import Profile
|
from participant.models import Profile
|
||||||
from system.api import config_get
|
from system import config
|
||||||
from utils.utils import _propper_unicode
|
from utils.utils import _propper_unicode
|
||||||
from poll import ChoicePoll
|
from poll import ChoicePoll
|
||||||
from poll.models import BaseOption, BasePoll
|
from poll.models import BaseOption, BasePoll
|
||||||
@ -148,7 +148,7 @@ class Application(models.Model, Slide):
|
|||||||
"""
|
"""
|
||||||
Return True, if the application has enough supporters
|
Return True, if the application has enough supporters
|
||||||
"""
|
"""
|
||||||
min_supporters = int(config_get('application_min_supporters'))
|
min_supporters = int(config['application_min_supporters'])
|
||||||
if self.status == "pub":
|
if self.status == "pub":
|
||||||
return self.supporter.count() >= min_supporters
|
return self.supporter.count() >= min_supporters
|
||||||
else:
|
else:
|
||||||
@ -159,7 +159,7 @@ class Application(models.Model, Slide):
|
|||||||
"""
|
"""
|
||||||
Return number of missing supporters
|
Return number of missing supporters
|
||||||
"""
|
"""
|
||||||
min_supporters = int(config_get('application_min_supporters'))
|
min_supporters = int(config['application_min_supporters'])
|
||||||
delta = min_supporters - self.supporter.count()
|
delta = min_supporters - self.supporter.count()
|
||||||
if delta > 0:
|
if delta > 0:
|
||||||
return delta
|
return delta
|
||||||
|
@ -23,21 +23,25 @@ from django.utils.translation import ugettext as _
|
|||||||
from django.utils.translation import ungettext
|
from django.utils.translation import ungettext
|
||||||
from django.db import transaction
|
from django.db import transaction
|
||||||
|
|
||||||
|
from system import config
|
||||||
|
|
||||||
from agenda.models import Item
|
from agenda.models import Item
|
||||||
|
|
||||||
from application.models import Application, AVersion, ApplicationPoll
|
from application.models import Application, AVersion, ApplicationPoll
|
||||||
from application.forms import ApplicationForm, \
|
from application.forms import ApplicationForm, \
|
||||||
ApplicationManagerForm, \
|
ApplicationManagerForm, \
|
||||||
ApplicationImportForm
|
ApplicationImportForm
|
||||||
from openslides.participant.models import Profile
|
|
||||||
|
from participant.models import Profile
|
||||||
|
|
||||||
from poll.views import PollFormView
|
from poll.views import PollFormView
|
||||||
|
|
||||||
from openslides.utils.utils import template, permission_required, \
|
from utils.utils import template, permission_required, \
|
||||||
render_to_forbitten, del_confirm_form, gen_confirm_form
|
render_to_forbitten, del_confirm_form, gen_confirm_form
|
||||||
from openslides.utils.pdf import print_application, print_application_poll
|
|
||||||
from openslides.system.api import config_get
|
|
||||||
|
|
||||||
from openslides.participant.api import gen_username, gen_password
|
from utils.pdf import print_application, print_application_poll
|
||||||
|
|
||||||
|
from participant.api import gen_username, gen_password
|
||||||
|
|
||||||
@permission_required('application.can_see_application')
|
@permission_required('application.can_see_application')
|
||||||
@template('application/overview.html')
|
@template('application/overview.html')
|
||||||
@ -69,7 +73,7 @@ def overview(request):
|
|||||||
applications = query.all()
|
applications = query.all()
|
||||||
return {
|
return {
|
||||||
'applications': applications,
|
'applications': applications,
|
||||||
'min_supporters': int(config_get('application_min_supporters')),
|
'min_supporters': int(config['application_min_supporters']),
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -91,7 +95,7 @@ def view(request, application_id, newest=False):
|
|||||||
'application': application,
|
'application': application,
|
||||||
'revisions': revisions,
|
'revisions': revisions,
|
||||||
'actions': actions,
|
'actions': actions,
|
||||||
'min_supporters': int(config_get('application_min_supporters')),
|
'min_supporters': int(config['application_min_supporters']),
|
||||||
'version': version,
|
'version': version,
|
||||||
#'results': application.results
|
#'results': application.results
|
||||||
}
|
}
|
||||||
@ -182,7 +186,7 @@ def edit(request, application_id=None):
|
|||||||
messages.error(request, _('Please check the form for errors.'))
|
messages.error(request, _('Please check the form for errors.'))
|
||||||
else:
|
else:
|
||||||
if application_id is None:
|
if application_id is None:
|
||||||
initial = {'text': config_get('application_preamble')}
|
initial = {'text': config['application_preamble']}
|
||||||
else:
|
else:
|
||||||
if application.status == "pub" and application.supporter.count() > 0:
|
if application.status == "pub" and application.supporter.count() > 0:
|
||||||
if request.user.has_perm('application.can_manage_application'):
|
if request.user.has_perm('application.can_manage_application'):
|
||||||
@ -455,6 +459,7 @@ def reject_version(request, aversion_id):
|
|||||||
gen_confirm_form(request, _('Do you really want to reject version <b>%s</b>?') % aversion.aid, reverse('application_version_reject', args=[aversion.id]))
|
gen_confirm_form(request, _('Do you really want to reject version <b>%s</b>?') % aversion.aid, reverse('application_version_reject', args=[aversion.id]))
|
||||||
return redirect(reverse('application_view', args=[application.id]))
|
return redirect(reverse('application_view', args=[application.id]))
|
||||||
|
|
||||||
|
|
||||||
@permission_required('application.can_manage_applications')
|
@permission_required('application.can_manage_applications')
|
||||||
@template('application/import.html')
|
@template('application/import.html')
|
||||||
def application_import(request):
|
def application_import(request):
|
||||||
|
@ -11,7 +11,7 @@
|
|||||||
"""
|
"""
|
||||||
|
|
||||||
# Django settings for openslides project.
|
# Django settings for openslides project.
|
||||||
from system.openslides_settings import *
|
from openslides_settings import *
|
||||||
|
|
||||||
DEBUG = True
|
DEBUG = True
|
||||||
TEMPLATE_DEBUG = DEBUG
|
TEMPLATE_DEBUG = DEBUG
|
||||||
|
@ -13,7 +13,7 @@ import os
|
|||||||
from django.conf.global_settings import *
|
from django.conf.global_settings import *
|
||||||
|
|
||||||
SITE_ROOT = os.path.realpath(os.path.dirname(__file__))
|
SITE_ROOT = os.path.realpath(os.path.dirname(__file__))
|
||||||
SITE_ROOT = os.path.join(SITE_ROOT, '..')
|
#SITE_ROOT = os.path.join(SITE_ROOT, '..')
|
||||||
|
|
||||||
|
|
||||||
AUTH_PROFILE_MODULE = 'participant.Profile'
|
AUTH_PROFILE_MODULE = 'participant.Profile'
|
||||||
@ -100,14 +100,14 @@ INSTALLED_APPS = (
|
|||||||
'django.contrib.sessions',
|
'django.contrib.sessions',
|
||||||
'django.contrib.messages',
|
'django.contrib.messages',
|
||||||
'django.contrib.admin',
|
'django.contrib.admin',
|
||||||
'agenda',
|
|
||||||
'system',
|
'system',
|
||||||
'participant',
|
|
||||||
'application',
|
|
||||||
'poll',
|
|
||||||
'assignment',
|
|
||||||
'utils',
|
'utils',
|
||||||
'projector',
|
'projector',
|
||||||
|
'poll',
|
||||||
|
'agenda',
|
||||||
|
'participant',
|
||||||
|
'application',
|
||||||
|
'assignment',
|
||||||
)
|
)
|
||||||
|
|
||||||
TEMPLATE_CONTEXT_PROCESSORS = (
|
TEMPLATE_CONTEXT_PROCESSORS = (
|
@ -20,14 +20,14 @@ from agenda.models import Item
|
|||||||
from application.models import Application
|
from application.models import Application
|
||||||
from assignment.models import Assignment
|
from assignment.models import Assignment
|
||||||
from participant.models import Profile
|
from participant.models import Profile
|
||||||
from system.models import Config
|
from system.models import ConfigStore
|
||||||
|
|
||||||
USER_VISIBLE_PERMISSIONS = reduce(list.__add__, [
|
USER_VISIBLE_PERMISSIONS = reduce(list.__add__, [
|
||||||
[p[0] for p in Item._meta.permissions],
|
[p[0] for p in Item._meta.permissions],
|
||||||
[p[0] for p in Application._meta.permissions],
|
[p[0] for p in Application._meta.permissions],
|
||||||
[p[0] for p in Assignment._meta.permissions],
|
[p[0] for p in Assignment._meta.permissions],
|
||||||
[p[0] for p in Profile._meta.permissions],
|
[p[0] for p in Profile._meta.permissions],
|
||||||
[p[0] for p in Config._meta.permissions]
|
[p[0] for p in ConfigStore._meta.permissions]
|
||||||
])
|
])
|
||||||
|
|
||||||
class UserNewForm(ModelForm):
|
class UserNewForm(ModelForm):
|
||||||
|
@ -36,7 +36,7 @@ from participant.api import gen_username, gen_password
|
|||||||
from participant.forms import UserNewForm, UserEditForm, ProfileForm, UsersettingsForm, UserImportForm, GroupForm, AdminPasswordChangeForm
|
from participant.forms import UserNewForm, UserEditForm, ProfileForm, UsersettingsForm, UserImportForm, GroupForm, AdminPasswordChangeForm
|
||||||
from utils.utils import template, permission_required, gen_confirm_form
|
from utils.utils import template, permission_required, gen_confirm_form
|
||||||
from utils.pdf import print_userlist, print_passwords
|
from utils.pdf import print_userlist, print_passwords
|
||||||
from system.api import config_get
|
from system import config
|
||||||
|
|
||||||
from django.db.models import Avg, Max, Min, Count
|
from django.db.models import Avg, Max, Min, Count
|
||||||
|
|
||||||
@ -203,7 +203,7 @@ def user_set_active(request, user_id):
|
|||||||
@permission_required('participant.can_manage_participant')
|
@permission_required('participant.can_manage_participant')
|
||||||
@template('participant/group_overview.html')
|
@template('participant/group_overview.html')
|
||||||
def get_group_overview(request):
|
def get_group_overview(request):
|
||||||
if config_get('system_enable_anonymous', False):
|
if config['system_enable_anonymous']:
|
||||||
groups = Group.objects.all()
|
groups = Group.objects.all()
|
||||||
else:
|
else:
|
||||||
groups = Group.objects.exclude(name='Anonymous')
|
groups = Group.objects.exclude(name='Anonymous')
|
||||||
|
@ -13,6 +13,9 @@
|
|||||||
from django.db import models
|
from django.db import models
|
||||||
from django.utils.translation import ugettext as _
|
from django.utils.translation import ugettext as _
|
||||||
|
|
||||||
|
#from projector.api import register_slidemodel
|
||||||
|
#from projector.models import Slide
|
||||||
|
|
||||||
|
|
||||||
class BaseOption(models.Model):
|
class BaseOption(models.Model):
|
||||||
poll = models.ForeignKey('BasePoll')
|
poll = models.ForeignKey('BasePoll')
|
||||||
@ -39,7 +42,9 @@ class Vote(models.Model):
|
|||||||
value = models.CharField(max_length=255, null=True)
|
value = models.CharField(max_length=255, null=True)
|
||||||
|
|
||||||
|
|
||||||
class BasePoll(models.Model):
|
class BasePoll(models.Model): #, Slide):
|
||||||
|
prefix = 'BasePoll'
|
||||||
|
|
||||||
description = models.TextField(null=True, blank=True, verbose_name = _("Description"))
|
description = models.TextField(null=True, blank=True, verbose_name = _("Description"))
|
||||||
votescast = models.IntegerField(null=True, blank=True, verbose_name = _("Votes cast"))
|
votescast = models.IntegerField(null=True, blank=True, verbose_name = _("Votes cast"))
|
||||||
votesinvalid = models.IntegerField(null=True, blank=True, verbose_name = _("Votes invalid"))
|
votesinvalid = models.IntegerField(null=True, blank=True, verbose_name = _("Votes invalid"))
|
||||||
@ -96,3 +101,5 @@ class BasePoll(models.Model):
|
|||||||
return forms
|
return forms
|
||||||
|
|
||||||
|
|
||||||
|
#register_slidemodel(BasePoll)
|
||||||
|
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
from system.api import config_set, config_get
|
from system import config
|
||||||
from projector.models import SLIDE
|
from projector.models import SLIDE
|
||||||
|
|
||||||
|
|
||||||
@ -24,7 +24,7 @@ def get_active_slide(only_sid=False):
|
|||||||
if only_sid is True, returns only the id of this item. Returns None if not Item
|
if only_sid is True, returns only the id of this item. Returns None if not Item
|
||||||
is active. Does not Raise Item.DoesNotExist
|
is active. Does not Raise Item.DoesNotExist
|
||||||
"""
|
"""
|
||||||
sid = config_get("presentation", None)
|
sid = config["presentation"]
|
||||||
|
|
||||||
if only_sid:
|
if only_sid:
|
||||||
return sid
|
return sid
|
||||||
@ -32,7 +32,7 @@ def get_active_slide(only_sid=False):
|
|||||||
|
|
||||||
|
|
||||||
def set_active_slide(sid):
|
def set_active_slide(sid):
|
||||||
config_set("presentation", sid)
|
config["presentation"] = sid
|
||||||
|
|
||||||
|
|
||||||
def register_slidemodel(model):
|
def register_slidemodel(model):
|
||||||
@ -43,39 +43,3 @@ def register_slidefunc(name, func):
|
|||||||
if ' ' in name:
|
if ' ' in name:
|
||||||
raise NameError('There can be no space in name')
|
raise NameError('There can be no space in name')
|
||||||
SLIDE[name] = func
|
SLIDE[name] = func
|
||||||
|
|
||||||
|
|
||||||
## def assignment_votes(item):
|
|
||||||
## votes = []
|
|
||||||
## if item.type == "ItemAssignment":
|
|
||||||
## assignment = item.cast().assignment
|
|
||||||
## publish_winner_results_only = config_get("assignment_publish_winner_results_only")
|
|
||||||
## # list of votes
|
|
||||||
## votes = []
|
|
||||||
## for candidate in assignment.candidates:
|
|
||||||
## tmplist = [[candidate, assignment.is_elected(candidate)], []]
|
|
||||||
## for poll in assignment.poll_set.all():
|
|
||||||
## if poll.published:
|
|
||||||
## if candidate in poll.options_values:
|
|
||||||
## # check config option 'publish_winner_results_only'
|
|
||||||
## if not publish_winner_results_only \
|
|
||||||
## or publish_winner_results_only and assignment.is_elected(candidate):
|
|
||||||
## option = Option.objects.filter(poll=poll).filter(user=candidate)[0]
|
|
||||||
## if poll.optiondecision:
|
|
||||||
## tmplist[1].append([option.yes, option.no, option.undesided])
|
|
||||||
## else:
|
|
||||||
## tmplist[1].append(option.yes)
|
|
||||||
## else:
|
|
||||||
## tmplist[1].append("")
|
|
||||||
## else:
|
|
||||||
## tmplist[1].append("-")
|
|
||||||
## votes.append(tmplist)
|
|
||||||
## return votes
|
|
||||||
##
|
|
||||||
##
|
|
||||||
## def assignment_polls(item):
|
|
||||||
## polls = []
|
|
||||||
## if item.type == "ItemAssignment":
|
|
||||||
## for poll in item.cast().assignment.poll_set.filter(assignment=item.cast().assignment):
|
|
||||||
## polls.append(poll)
|
|
||||||
## return polls
|
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
from django.db import models
|
from django.db import models
|
||||||
|
|
||||||
from system.api import config_set, config_get
|
from system import config
|
||||||
|
|
||||||
SLIDE = {}
|
SLIDE = {}
|
||||||
|
|
||||||
@ -37,4 +37,4 @@ class Slide(object):
|
|||||||
"""
|
"""
|
||||||
Appoint this item as the active one.
|
Appoint this item as the active one.
|
||||||
"""
|
"""
|
||||||
config_set("presentation", "%s %d" % (self.prefix, self.id))
|
config["presentation"] = "%s %d" % (self.prefix, self.id)
|
||||||
|
@ -22,7 +22,7 @@ from utils.utils import template, permission_required, \
|
|||||||
del_confirm_form, ajax_request
|
del_confirm_form, ajax_request
|
||||||
from utils.template import render_block_to_string
|
from utils.template import render_block_to_string
|
||||||
|
|
||||||
from system.api import config_set, config_get
|
from system import config
|
||||||
|
|
||||||
from agenda.api import is_summary, children_list, \
|
from agenda.api import is_summary, children_list, \
|
||||||
del_confirm_form_for_items
|
del_confirm_form_for_items
|
||||||
@ -40,7 +40,7 @@ def active_slide(request):
|
|||||||
data = get_active_slide()
|
data = get_active_slide()
|
||||||
except AttributeError: #TODO: It has to be an Slide.DoesNotExist
|
except AttributeError: #TODO: It has to be an Slide.DoesNotExist
|
||||||
data = {
|
data = {
|
||||||
'title': config_get('event_name'),
|
'title': config['event_name'],
|
||||||
'template': 'projector/default.html',
|
'template': 'projector/default.html',
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -52,11 +52,11 @@ def active_slide(request):
|
|||||||
'content': content,
|
'content': content,
|
||||||
'title': data['title'],
|
'title': data['title'],
|
||||||
'time': datetime.now().strftime('%H:%M'),
|
'time': datetime.now().strftime('%H:%M'),
|
||||||
'bigger': config_get('bigger'),
|
'bigger': config['bigger'],
|
||||||
'up': config_get('up'),
|
'up': config['up'],
|
||||||
'countdown_visible': config_get('countdown_visible'),
|
'countdown_visible': config['countdown_visible'],
|
||||||
'countdown_time': config_get('agenda_countdown_time'),
|
'countdown_time': config['agenda_countdown_time'],
|
||||||
'countdown_control': config_get('countdown_control'),
|
'countdown_control': config['countdown_control'],
|
||||||
}
|
}
|
||||||
return ajax_request(jsondata)
|
return ajax_request(jsondata)
|
||||||
else:
|
else:
|
||||||
@ -70,16 +70,16 @@ def active_slide(request):
|
|||||||
@permission_required('agenda.can_manage_agenda')
|
@permission_required('agenda.can_manage_agenda')
|
||||||
def projector_edit(request, direction):
|
def projector_edit(request, direction):
|
||||||
if direction == 'bigger':
|
if direction == 'bigger':
|
||||||
config_set('bigger', int(config_get('bigger', 100)) + 10)
|
config['bigger'] = int(config['bigger']) + 10
|
||||||
elif direction == 'smaller':
|
elif direction == 'smaller':
|
||||||
config_set('bigger', int(config_get('bigger', 100)) - 10)
|
config['bigger'] = int(config['bigger']) - 10
|
||||||
elif direction == 'up':
|
elif direction == 'up':
|
||||||
config_set('up', int(config_get('up', 0)) - 10)
|
config['up'] = int(config['up']) - 10
|
||||||
elif direction == 'down':
|
elif direction == 'down':
|
||||||
config_set('up', int(config_get('up', 0)) + 10)
|
config['up'] = int(config['up']) + 10
|
||||||
elif direction == 'clean':
|
elif direction == 'clean':
|
||||||
config_set('up', 0)
|
config['up'] = 0
|
||||||
config_set('bigger', 100)
|
config['bigger'] = 100
|
||||||
|
|
||||||
if request.is_ajax():
|
if request.is_ajax():
|
||||||
return ajax_request({})
|
return ajax_request({})
|
||||||
@ -89,21 +89,21 @@ def projector_edit(request, direction):
|
|||||||
@permission_required('agenda.can_manage_agenda')
|
@permission_required('agenda.can_manage_agenda')
|
||||||
def projector_countdown(request, command, time=60):
|
def projector_countdown(request, command, time=60):
|
||||||
if command == 'show':
|
if command == 'show':
|
||||||
config_set('countdown_visible', True)
|
config['countdown_visible'] = True
|
||||||
elif command == 'hide':
|
elif command == 'hide':
|
||||||
config_set('countdown_visible', False)
|
config['countdown_visible'] = False
|
||||||
elif command == 'reset':
|
elif command == 'reset':
|
||||||
config_set('countdown_control', 'reset')
|
config['countdown_control'] = 'reset'
|
||||||
elif command == 'start':
|
elif command == 'start':
|
||||||
config_set('countdown_control', 'start')
|
config['countdown_control'] = 'start'
|
||||||
elif command == 'stop':
|
elif command == 'stop':
|
||||||
config_set('countdown_control', 'stop')
|
config['countdown_control'] = 'stop'
|
||||||
|
|
||||||
if request.is_ajax():
|
if request.is_ajax():
|
||||||
if command == "show":
|
if command == "show":
|
||||||
link = reverse('countdown_close')
|
link = reverse('countdown_close')
|
||||||
else:
|
else:
|
||||||
link = reverse('countdown_open')
|
link = reverse('countdown_open')
|
||||||
return ajax_request({'countdown_visible': config_get('countdown_visible'),
|
return ajax_request({'countdown_visible': config['countdown_visible'],
|
||||||
'link': link})
|
'link': link})
|
||||||
return redirect(reverse('item_overview'))
|
return redirect(reverse('item_overview'))
|
||||||
|
@ -0,0 +1,3 @@
|
|||||||
|
from system.models import Config
|
||||||
|
|
||||||
|
config = Config()
|
@ -11,6 +11,6 @@
|
|||||||
"""
|
"""
|
||||||
|
|
||||||
from django.contrib import admin
|
from django.contrib import admin
|
||||||
from system.models import Config
|
from system.models import ConfigStore
|
||||||
|
|
||||||
admin.site.register(Config)
|
admin.site.register(ConfigStore)
|
||||||
|
@ -1,45 +0,0 @@
|
|||||||
#!/usr/bin/env python
|
|
||||||
# -*- coding: utf-8 -*-
|
|
||||||
"""
|
|
||||||
openslides.system.api
|
|
||||||
~~~~~~~~~~~~~~~~~~~~~
|
|
||||||
|
|
||||||
Useful functions for the system app.
|
|
||||||
|
|
||||||
:copyright: 2011 by the OpenSlides team, see AUTHORS.
|
|
||||||
:license: GNU GPL, see LICENSE for more details.
|
|
||||||
"""
|
|
||||||
|
|
||||||
from system.models import Config, DEFAULT_DATA
|
|
||||||
|
|
||||||
def config_get(key, default=None):
|
|
||||||
"""
|
|
||||||
return the Value to the given Key
|
|
||||||
Else, return the given default value
|
|
||||||
Else, return the default value from config.models
|
|
||||||
Else, return none
|
|
||||||
"""
|
|
||||||
|
|
||||||
try:
|
|
||||||
value = Config.objects.values_list('value').get(pk=key)[0]
|
|
||||||
return value
|
|
||||||
except Config.DoesNotExist:
|
|
||||||
if default is None:
|
|
||||||
try:
|
|
||||||
default = DEFAULT_DATA[key]
|
|
||||||
except KeyError:
|
|
||||||
pass
|
|
||||||
return default
|
|
||||||
|
|
||||||
def config_set(key, value):
|
|
||||||
"""
|
|
||||||
Save key, value in DB. If it allready exist, it will be updated
|
|
||||||
"""
|
|
||||||
try:
|
|
||||||
c = Config.objects.get(id=key)
|
|
||||||
except Config.DoesNotExist:
|
|
||||||
c = Config()
|
|
||||||
c.id = str(key)
|
|
||||||
|
|
||||||
c.value = unicode(value)
|
|
||||||
c.save()
|
|
@ -1,5 +1,5 @@
|
|||||||
from django.contrib.auth.models import Permission
|
from django.contrib.auth.models import Permission
|
||||||
from openslides.system.api import config_get
|
from system import config
|
||||||
|
|
||||||
class AnonymousAuth(object):
|
class AnonymousAuth(object):
|
||||||
"""
|
"""
|
||||||
@ -25,7 +25,7 @@ class AnonymousAuth(object):
|
|||||||
- try to return the permissions for the 'Anonymous' group
|
- try to return the permissions for the 'Anonymous' group
|
||||||
"""
|
"""
|
||||||
if not user_obj.is_anonymous() or obj is not None or \
|
if not user_obj.is_anonymous() or obj is not None or \
|
||||||
not config_get('system_enable_anonymous', False):
|
not config['system_enable_anonymous']:
|
||||||
return set()
|
return set()
|
||||||
|
|
||||||
perms = Permission.objects.filter(group__name='Anonymous')
|
perms = Permission.objects.filter(group__name='Anonymous')
|
||||||
@ -47,7 +47,7 @@ class AnonymousAuth(object):
|
|||||||
Check if the user as a specific permission
|
Check if the user as a specific permission
|
||||||
"""
|
"""
|
||||||
if not user_obj.is_anonymous() or obj is not None or \
|
if not user_obj.is_anonymous() or obj is not None or \
|
||||||
not config_get('system_enable_anonymous', False):
|
not config['system_enable_anonymous']:
|
||||||
return False
|
return False
|
||||||
|
|
||||||
return (perm in self.get_all_permissions(user_obj))
|
return (perm in self.get_all_permissions(user_obj))
|
||||||
@ -57,7 +57,7 @@ class AnonymousAuth(object):
|
|||||||
Check if the user has permissions on the module app_label
|
Check if the user has permissions on the module app_label
|
||||||
"""
|
"""
|
||||||
if not user_obj.is_anonymous() or \
|
if not user_obj.is_anonymous() or \
|
||||||
not config_get('system_enable_anonymous', False):
|
not config['system_enable_anonymous']:
|
||||||
return False
|
return False
|
||||||
|
|
||||||
for perm in self.get_all_permissions(user_obj):
|
for perm in self.get_all_permissions(user_obj):
|
||||||
@ -78,5 +78,5 @@ def anonymous_context_additions(RequestContext):
|
|||||||
Add a variable to the request context that will indicate
|
Add a variable to the request context that will indicate
|
||||||
if anonymous login is possible at all.
|
if anonymous login is possible at all.
|
||||||
"""
|
"""
|
||||||
return { 'os_enable_anonymous_login' : config_get('system_enable_anonymous', False) }
|
return { 'os_enable_anonymous_login' : config['system_enable_anonymous']}
|
||||||
|
|
||||||
|
@ -12,7 +12,7 @@
|
|||||||
|
|
||||||
from django.forms import Form, CharField, TextInput, BooleanField, IntegerField, ChoiceField, Textarea, Select
|
from django.forms import Form, CharField, TextInput, BooleanField, IntegerField, ChoiceField, Textarea, Select
|
||||||
from django.utils.translation import ugettext as _
|
from django.utils.translation import ugettext as _
|
||||||
from system.api import config_get
|
from system import config
|
||||||
|
|
||||||
class SystemConfigForm(Form):
|
class SystemConfigForm(Form):
|
||||||
error_css_class = 'error'
|
error_css_class = 'error'
|
||||||
|
@ -27,14 +27,36 @@ DEFAULT_DATA = {
|
|||||||
'system_welcometext': 'Welcome to OpenSlides!',
|
'system_welcometext': 'Welcome to OpenSlides!',
|
||||||
}
|
}
|
||||||
|
|
||||||
class Config(models.Model):
|
class ConfigStore(models.Model):
|
||||||
id = models.CharField(max_length=100, primary_key=True)
|
key = models.CharField(max_length=100, primary_key=True)
|
||||||
value = models.CharField(max_length=100)
|
value = models.CharField(max_length=100)
|
||||||
|
|
||||||
def __unicode__(self):
|
def __unicode__(self):
|
||||||
return self.id
|
return self.id
|
||||||
|
|
||||||
class Meta:
|
class Meta:
|
||||||
|
verbose_name = 'config'
|
||||||
permissions = (
|
permissions = (
|
||||||
('can_manage_system', "Can manage system configuration"),
|
('can_manage_system', "Can manage system configuration"),
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
|
class Config(object):
|
||||||
|
def __getitem__(self, key):
|
||||||
|
try:
|
||||||
|
return ConfigStore.objects.get(pk=key).value
|
||||||
|
except ConfigStore.DoesNotExist:
|
||||||
|
try:
|
||||||
|
return DEFAULT_DATA[key]
|
||||||
|
except KeyError:
|
||||||
|
return None
|
||||||
|
|
||||||
|
def __setitem__(self, key, value):
|
||||||
|
try:
|
||||||
|
c = ConfigStore.objects.get(pk=key)
|
||||||
|
except ConfigStore.DoesNotExist:
|
||||||
|
c = ConfigStore(pk=key)
|
||||||
|
c.value = value
|
||||||
|
c.save()
|
||||||
|
|
||||||
|
|
||||||
|
@ -1,4 +1,7 @@
|
|||||||
{% extends "system/base_system.html" %}
|
{% extends "system/base_system.html" %}
|
||||||
|
|
||||||
|
{% load i18n %}
|
||||||
|
|
||||||
{% block title %}{{ block.super }} - {% trans "Configuration" %}{% endblock %}
|
{% block title %}{{ block.super }} - {% trans "Configuration" %}{% endblock %}
|
||||||
|
|
||||||
{% block content %}
|
{% block content %}
|
||||||
|
@ -1,4 +1,7 @@
|
|||||||
{% extends "system/base_system.html" %}
|
{% extends "system/base_system.html" %}
|
||||||
|
|
||||||
|
{% load i18n %}
|
||||||
|
|
||||||
{% block title %}{{ block.super }} - {% trans "Configuration" %}{% endblock %}
|
{% block title %}{{ block.super }} - {% trans "Configuration" %}{% endblock %}
|
||||||
|
|
||||||
{% block content %}
|
{% block content %}
|
||||||
|
@ -1,4 +1,7 @@
|
|||||||
{% extends "system/base_system.html" %}
|
{% extends "system/base_system.html" %}
|
||||||
|
|
||||||
|
{% load i18n %}
|
||||||
|
|
||||||
{% block title %}{{ block.super }} - {% trans "Configuration" %}{% endblock %}
|
{% block title %}{{ block.super }} - {% trans "Configuration" %}{% endblock %}
|
||||||
|
|
||||||
{% block content %}
|
{% block content %}
|
||||||
|
@ -1,5 +1,7 @@
|
|||||||
{% extends "base.html" %}
|
{% extends "base.html" %}
|
||||||
|
|
||||||
{% load tags %}
|
{% load tags %}
|
||||||
|
{% load i18n %}
|
||||||
|
|
||||||
{% block submenu %}
|
{% block submenu %}
|
||||||
{% url config_general as url_config_general %}
|
{% url config_general as url_config_general %}
|
||||||
|
@ -1,4 +1,7 @@
|
|||||||
{% extends "system/base_system.html" %}
|
{% extends "system/base_system.html" %}
|
||||||
|
|
||||||
|
{% load i18n %}
|
||||||
|
|
||||||
{% block title %}{{ block.super }} - {% trans "Configuration" %}{% endblock %}
|
{% block title %}{{ block.super }} - {% trans "Configuration" %}{% endblock %}
|
||||||
|
|
||||||
{% block content %}
|
{% block content %}
|
||||||
|
@ -1,4 +1,7 @@
|
|||||||
{% extends "system/base_system.html" %}
|
{% extends "system/base_system.html" %}
|
||||||
|
|
||||||
|
{% load i18n %}
|
||||||
|
|
||||||
{% block title %}{{ block.super }} - {% trans "Configuration" %}{% endblock %}
|
{% block title %}{{ block.super }} - {% trans "Configuration" %}{% endblock %}
|
||||||
|
|
||||||
{% block content %}
|
{% block content %}
|
||||||
|
@ -1,28 +0,0 @@
|
|||||||
#!/usr/bin/env python
|
|
||||||
# -*- coding: utf-8 -*-
|
|
||||||
"""
|
|
||||||
openslides.system.tests
|
|
||||||
~~~~~~~~~~~~~~~~~~~~~~~
|
|
||||||
|
|
||||||
Unit tests for the system app.
|
|
||||||
|
|
||||||
:copyright: 2011 by the OpenSlides team, see AUTHORS.
|
|
||||||
:license: GNU GPL, see LICENSE for more details.
|
|
||||||
"""
|
|
||||||
|
|
||||||
from django.test import TestCase
|
|
||||||
|
|
||||||
class SimpleTest(TestCase):
|
|
||||||
def test_basic_addition(self):
|
|
||||||
"""
|
|
||||||
Tests that 1 + 1 always equals 2.
|
|
||||||
"""
|
|
||||||
self.failUnlessEqual(1 + 1, 2)
|
|
||||||
|
|
||||||
__test__ = {"doctest": """
|
|
||||||
Another way to test that 1 + 1 is equal to 2.
|
|
||||||
|
|
||||||
>>> 1 + 1 == 2
|
|
||||||
True
|
|
||||||
"""}
|
|
||||||
|
|
@ -13,9 +13,18 @@
|
|||||||
from django.conf.urls.defaults import *
|
from django.conf.urls.defaults import *
|
||||||
|
|
||||||
urlpatterns = patterns('system.views',
|
urlpatterns = patterns('system.views',
|
||||||
url(r'^config/general$', 'get_general_config', name='config_general'),
|
url(r'^config/general$', 'get_general_config',
|
||||||
url(r'^config/agenda$', 'get_agenda_config', name='config_agenda'),
|
name='config_general'),
|
||||||
url(r'^config/application$', 'get_application_config', name='config_application'),
|
|
||||||
url(r'^config/assignment$', 'get_assignment_config', name='config_assignment'),
|
url(r'^config/agenda$', 'get_agenda_config',
|
||||||
url(r'^config/system$', 'get_system_config', name='config_system'),
|
name='config_agenda'),
|
||||||
|
|
||||||
|
url(r'^config/application$', 'get_application_config',
|
||||||
|
name='config_application'),
|
||||||
|
|
||||||
|
url(r'^config/assignment$', 'get_assignment_config',
|
||||||
|
name='config_assignment'),
|
||||||
|
|
||||||
|
url(r'^config/system$', 'get_system_config',
|
||||||
|
name='config_system'),
|
||||||
)
|
)
|
||||||
|
@ -15,10 +15,13 @@ from django.core.urlresolvers import reverse
|
|||||||
from django.contrib import messages
|
from django.contrib import messages
|
||||||
from django.contrib.auth.models import Group, Permission
|
from django.contrib.auth.models import Group, Permission
|
||||||
from django.utils.translation import ugettext as _
|
from django.utils.translation import ugettext as _
|
||||||
|
|
||||||
from utils.utils import template
|
from utils.utils import template
|
||||||
from utils.utils import template, permission_required
|
from utils.utils import template, permission_required
|
||||||
|
|
||||||
from system.forms import SystemConfigForm, EventConfigForm, AgendaConfigForm, ApplicationConfigForm, AssignmentConfigForm
|
from system.forms import SystemConfigForm, EventConfigForm, AgendaConfigForm, ApplicationConfigForm, AssignmentConfigForm
|
||||||
from system.api import config_get, config_set
|
|
||||||
|
from system import config
|
||||||
|
|
||||||
@permission_required('system.can_manage_system')
|
@permission_required('system.can_manage_system')
|
||||||
@template('system/general.html')
|
@template('system/general.html')
|
||||||
@ -27,21 +30,21 @@ def get_general_config(request):
|
|||||||
form_event = EventConfigForm(request.POST, prefix='event')
|
form_event = EventConfigForm(request.POST, prefix='event')
|
||||||
if form_event.is_valid():
|
if form_event.is_valid():
|
||||||
# event form
|
# event form
|
||||||
config_set('event_name', form_event.cleaned_data['event_name'])
|
config['event_name'] = form_event.cleaned_data['event_name']
|
||||||
config_set('event_description', form_event.cleaned_data['event_description'])
|
config['event_description'] = form_event.cleaned_data['event_description']
|
||||||
config_set('event_date', form_event.cleaned_data['event_date'])
|
config['event_date'] = form_event.cleaned_data['event_date']
|
||||||
config_set('event_location', form_event.cleaned_data['event_location'])
|
config['event_location'] = form_event.cleaned_data['event_location']
|
||||||
config_set('event_organizer', form_event.cleaned_data['event_organizer'])
|
config['event_organizer'] = form_event.cleaned_data['event_organizer']
|
||||||
messages.success(request, _('General settings successfully saved.'))
|
messages.success(request, _('General settings successfully saved.'))
|
||||||
else:
|
else:
|
||||||
messages.error(request, _('Please check the form for errors.'))
|
messages.error(request, _('Please check the form for errors.'))
|
||||||
else:
|
else:
|
||||||
form_event = EventConfigForm(initial={
|
form_event = EventConfigForm(initial={
|
||||||
'event_name': config_get('event_name'),
|
'event_name': config['event_name'],
|
||||||
'event_description': config_get('event_description'),
|
'event_description': config['event_description'],
|
||||||
'event_date': config_get('event_date'),
|
'event_date': config['event_date'],
|
||||||
'event_location': config_get('event_location'),
|
'event_location': config['event_location'],
|
||||||
'event_organizer': config_get('event_organizer'),
|
'event_organizer': config['event_organizer'],
|
||||||
}, prefix='event')
|
}, prefix='event')
|
||||||
return {
|
return {
|
||||||
'form_event': form_event,
|
'form_event': form_event,
|
||||||
@ -53,13 +56,13 @@ def get_agenda_config(request):
|
|||||||
if request.method == 'POST':
|
if request.method == 'POST':
|
||||||
form_agenda = AgendaConfigForm(request.POST, prefix='agenda')
|
form_agenda = AgendaConfigForm(request.POST, prefix='agenda')
|
||||||
if form_agenda.is_valid():
|
if form_agenda.is_valid():
|
||||||
config_set('agenda_countdown_time', form_agenda.cleaned_data['agenda_countdown_time'])
|
config['agenda_countdown_time'] = form_agenda.cleaned_data['agenda_countdown_time']
|
||||||
messages.success(request, _('Agenda settings successfully saved.'))
|
messages.success(request, _('Agenda settings successfully saved.'))
|
||||||
else:
|
else:
|
||||||
messages.error(request, _('Please check the form for errors.'))
|
messages.error(request, _('Please check the form for errors.'))
|
||||||
else:
|
else:
|
||||||
form_agenda = AgendaConfigForm(initial={
|
form_agenda = AgendaConfigForm(initial={
|
||||||
'agenda_countdown_time': config_get('agenda_countdown_time'),
|
'agenda_countdown_time': config['agenda_countdown_time'],
|
||||||
}, prefix='agenda')
|
}, prefix='agenda')
|
||||||
return {
|
return {
|
||||||
'form_agenda': form_agenda,
|
'form_agenda': form_agenda,
|
||||||
@ -72,23 +75,23 @@ def get_application_config(request):
|
|||||||
form_application = ApplicationConfigForm(request.POST, prefix='application')
|
form_application = ApplicationConfigForm(request.POST, prefix='application')
|
||||||
form_assignment = AssignmentConfigForm(request.POST, prefix='assignment')
|
form_assignment = AssignmentConfigForm(request.POST, prefix='assignment')
|
||||||
if form_application.is_valid():
|
if form_application.is_valid():
|
||||||
config_set('application_min_supporters', form_application.cleaned_data['application_min_supporters'])
|
config['application_min_supporters'] = form_application.cleaned_data['application_min_supporters']
|
||||||
config_set('application_preamble', form_application.cleaned_data['application_preamble'])
|
config['application_preamble'] = form_application.cleaned_data['application_preamble']
|
||||||
config_set('application_pdf_ballot_papers_selection', form_application.cleaned_data['application_pdf_ballot_papers_selection'])
|
config['application_pdf_ballot_papers_selection'] = form_application.cleaned_data['application_pdf_ballot_papers_selection']
|
||||||
config_set('application_pdf_ballot_papers_number', form_application.cleaned_data['application_pdf_ballot_papers_number'])
|
config['application_pdf_ballot_papers_number'] = form_application.cleaned_data['application_pdf_ballot_papers_number']
|
||||||
config_set('application_pdf_title', form_application.cleaned_data['application_pdf_title'])
|
config['application_pdf_title'] = form_application.cleaned_data['application_pdf_title']
|
||||||
config_set('application_pdf_preamble', form_application.cleaned_data['application_pdf_preamble'])
|
config['application_pdf_preamble'] = form_application.cleaned_data['application_pdf_preamble']
|
||||||
messages.success(request, _('Application settings successfully saved.'))
|
messages.success(request, _('Application settings successfully saved.'))
|
||||||
else:
|
else:
|
||||||
messages.error(request, _('Please check the form for errors.'))
|
messages.error(request, _('Please check the form for errors.'))
|
||||||
else:
|
else:
|
||||||
form_application = ApplicationConfigForm(initial={
|
form_application = ApplicationConfigForm(initial={
|
||||||
'application_min_supporters': config_get('application_min_supporters'),
|
'application_min_supporters': config['application_min_supporters'],
|
||||||
'application_preamble': config_get('application_preamble'),
|
'application_preamble': config['application_preamble'],
|
||||||
'application_pdf_ballot_papers_selection': config_get('application_pdf_ballot_papers_selection'),
|
'application_pdf_ballot_papers_selection': config['application_pdf_ballot_papers_selection'],
|
||||||
'application_pdf_ballot_papers_number': config_get('application_pdf_ballot_papers_number'),
|
'application_pdf_ballot_papers_number': config['application_pdf_ballot_papers_number'],
|
||||||
'application_pdf_title': config_get('application_pdf_title'),
|
'application_pdf_title': config['application_pdf_title'],
|
||||||
'application_pdf_preamble': config_get('application_pdf_preamble'),
|
'application_pdf_preamble': config['application_pdf_preamble'],
|
||||||
}, prefix='application')
|
}, prefix='application')
|
||||||
return {
|
return {
|
||||||
'form_application': form_application,
|
'form_application': form_application,
|
||||||
@ -101,23 +104,23 @@ def get_assignment_config(request):
|
|||||||
form_assignment = AssignmentConfigForm(request.POST, prefix='assignment')
|
form_assignment = AssignmentConfigForm(request.POST, prefix='assignment')
|
||||||
if form_assignment.is_valid():
|
if form_assignment.is_valid():
|
||||||
if form_assignment.cleaned_data['assignment_publish_winner_results_only']:
|
if form_assignment.cleaned_data['assignment_publish_winner_results_only']:
|
||||||
config_set('assignment_publish_winner_results_only', True)
|
config['assignment_publish_winner_results_only'] = True
|
||||||
else:
|
else:
|
||||||
config_set('assignment_publish_winner_results_only', '')
|
config['assignment_publish_winner_results_only'] = ''
|
||||||
config_set('assignment_pdf_ballot_papers_selection', form_assignment.cleaned_data['assignment_pdf_ballot_papers_selection'])
|
config['assignment_pdf_ballot_papers_selection'] = form_assignment.cleaned_data['assignment_pdf_ballot_papers_selection']
|
||||||
config_set('assignment_pdf_ballot_papers_number', form_assignment.cleaned_data['assignment_pdf_ballot_papers_number'])
|
config['assignment_pdf_ballot_papers_number'] = form_assignment.cleaned_data['assignment_pdf_ballot_papers_number']
|
||||||
config_set('assignment_pdf_title', form_assignment.cleaned_data['assignment_pdf_title'])
|
config['assignment_pdf_title'] = form_assignment.cleaned_data['assignment_pdf_title']
|
||||||
config_set('assignment_pdf_preamble', form_assignment.cleaned_data['assignment_pdf_preamble'])
|
config['assignment_pdf_preamble'] = form_assignment.cleaned_data['assignment_pdf_preamble']
|
||||||
messages.success(request, _('Election settings successfully saved.'))
|
messages.success(request, _('Election settings successfully saved.'))
|
||||||
else:
|
else:
|
||||||
messages.error(request, _('Please check the form for errors.'))
|
messages.error(request, _('Please check the form for errors.'))
|
||||||
else:
|
else:
|
||||||
form_assignment = AssignmentConfigForm(initial={
|
form_assignment = AssignmentConfigForm(initial={
|
||||||
'assignment_publish_winner_results_only': config_get('assignment_publish_winner_results_only'),
|
'assignment_publish_winner_results_only': config['assignment_publish_winner_results_only'],
|
||||||
'assignment_pdf_ballot_papers_selection': config_get('assignment_pdf_ballot_papers_selection'),
|
'assignment_pdf_ballot_papers_selection': config['assignment_pdf_ballot_papers_selection'],
|
||||||
'assignment_pdf_ballot_papers_number': config_get('assignment_pdf_ballot_papers_number'),
|
'assignment_pdf_ballot_papers_number': config['assignment_pdf_ballot_papers_number'],
|
||||||
'assignment_pdf_title': config_get('assignment_pdf_title'),
|
'assignment_pdf_title': config['assignment_pdf_title'],
|
||||||
'assignment_pdf_preamble': config_get('assignment_pdf_preamble'),
|
'assignment_pdf_preamble': config['assignment_pdf_preamble'],
|
||||||
}, prefix='assignment')
|
}, prefix='assignment')
|
||||||
return {
|
return {
|
||||||
'form_assignment': form_assignment,
|
'form_assignment': form_assignment,
|
||||||
@ -129,10 +132,10 @@ def get_system_config(request):
|
|||||||
if request.method == 'POST':
|
if request.method == 'POST':
|
||||||
form = SystemConfigForm(request.POST)
|
form = SystemConfigForm(request.POST)
|
||||||
if form.is_valid():
|
if form.is_valid():
|
||||||
config_set('system_url', form.cleaned_data['system_url'])
|
config['system_url'] = form.cleaned_data['system_url']
|
||||||
config_set('system_welcometext', form.cleaned_data['system_welcometext'])
|
config['system_welcometext'] = form.cleaned_data['system_welcometext']
|
||||||
if form.cleaned_data['system_enable_anonymous']:
|
if form.cleaned_data['system_enable_anonymous']:
|
||||||
config_set('system_enable_anonymous', True)
|
config['system_enable_anonymous'] = True
|
||||||
# check for Anonymous group and (re)create it as needed
|
# check for Anonymous group and (re)create it as needed
|
||||||
try:
|
try:
|
||||||
anonymous = Group.objects.get(name='Anonymous')
|
anonymous = Group.objects.get(name='Anonymous')
|
||||||
@ -146,15 +149,15 @@ def get_system_config(request):
|
|||||||
messages.success(request, _('Anonymous access enabled. Please modify the "Anonymous" group to fit your required permissions.'))
|
messages.success(request, _('Anonymous access enabled. Please modify the "Anonymous" group to fit your required permissions.'))
|
||||||
else:
|
else:
|
||||||
# use '' - False will evaluate to uniced(False) => True..
|
# use '' - False will evaluate to uniced(False) => True..
|
||||||
config_set('system_enable_anonymous', '')
|
config['system_enable_anonymous'] = ''
|
||||||
messages.success(request, _('System settings successfully saved.'))
|
messages.success(request, _('System settings successfully saved.'))
|
||||||
else:
|
else:
|
||||||
messages.error(request, _('Please check the form for errors.'))
|
messages.error(request, _('Please check the form for errors.'))
|
||||||
else:
|
else:
|
||||||
form = SystemConfigForm(initial={
|
form = SystemConfigForm(initial={
|
||||||
'system_url': config_get('system_url'),
|
'system_url': config['system_url'],
|
||||||
'system_welcometext': config_get('system_welcometext'),
|
'system_welcometext': config['system_welcometext'],
|
||||||
'system_enable_anonymous': config_get('system_enable_anonymous'),
|
'system_enable_anonymous': config['system_enable_anonymous'],
|
||||||
})
|
})
|
||||||
return {
|
return {
|
||||||
'form': form,
|
'form': form,
|
||||||
|
@ -20,7 +20,7 @@ handler500 = 'openslides.utils.views.server_error'
|
|||||||
urlpatterns = patterns('',
|
urlpatterns = patterns('',
|
||||||
(r'^admin/', include(admin.site.urls)),
|
(r'^admin/', include(admin.site.urls)),
|
||||||
(r'^$', 'agenda.views.overview'),
|
(r'^$', 'agenda.views.overview'),
|
||||||
(r'agenda', include('agenda.urls')),
|
(r'^agenda', include('agenda.urls')),
|
||||||
(r'', include('application.urls')),
|
(r'', include('application.urls')),
|
||||||
(r'', include('participant.urls')),
|
(r'', include('participant.urls')),
|
||||||
(r'', include('assignment.urls')),
|
(r'', include('assignment.urls')),
|
||||||
|
@ -38,7 +38,7 @@ from openslides.application.models import Application
|
|||||||
from openslides.assignment.models import Assignment
|
from openslides.assignment.models import Assignment
|
||||||
#from openslides.poll.models import Poll, Option
|
#from openslides.poll.models import Poll, Option
|
||||||
from openslides.participant.models import Profile
|
from openslides.participant.models import Profile
|
||||||
from openslides.system.api import config_get
|
from system import config
|
||||||
from openslides.settings import SITE_ROOT
|
from openslides.settings import SITE_ROOT
|
||||||
from openslides.utils.utils import permission_required
|
from openslides.utils.utils import permission_required
|
||||||
|
|
||||||
@ -178,11 +178,11 @@ stylesheet.add(ParagraphStyle(name = 'Ballot_option_group_right',
|
|||||||
)
|
)
|
||||||
|
|
||||||
# set event information
|
# set event information
|
||||||
event_name = config_get("event_name")
|
event_name = config["event_name"]
|
||||||
event_description = config_get("event_description")
|
event_description = config["event_description"]
|
||||||
event_date = config_get("event_date")
|
event_date = config["event_date"]
|
||||||
event_location = config_get("event_location")
|
event_location = config["event_location"]
|
||||||
event_organizer = config_get("event_organizer")
|
event_organizer = config["event_organizer"]
|
||||||
|
|
||||||
# set print time
|
# set print time
|
||||||
time = datetime.now().strftime(str(_("%Y-%m-%d %H:%Mh")))
|
time = datetime.now().strftime(str(_("%Y-%m-%d %H:%Mh")))
|
||||||
|
@ -2,17 +2,17 @@
|
|||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
|
|
||||||
from django import template
|
from django import template
|
||||||
from system.api import config_get
|
from system import config
|
||||||
|
|
||||||
register = template.Library()
|
register = template.Library()
|
||||||
|
|
||||||
@register.simple_tag
|
@register.simple_tag
|
||||||
def get_min_supporters():
|
def get_min_supporters():
|
||||||
return config_get('application_min_supporters')
|
return config['application_min_supporters']
|
||||||
|
|
||||||
@register.simple_tag
|
@register.simple_tag
|
||||||
def get_config(key):
|
def get_config(key):
|
||||||
return config_get(key)
|
return config[key]
|
||||||
|
|
||||||
@register.simple_tag
|
@register.simple_tag
|
||||||
def active(request, pattern):
|
def active(request, pattern):
|
||||||
|
Loading…
Reference in New Issue
Block a user