diff --git a/amadeus/templates/base.html b/amadeus/templates/base.html index 68eb560..238a3bf 100644 --- a/amadeus/templates/base.html +++ b/amadeus/templates/base.html @@ -176,6 +176,7 @@
  • {% trans 'Mail Sender' %}
  • {% trans 'Security' %}
  • {% trans 'Theme' %}
  • +
  • {% trans 'Conference Settings' %}
  • diff --git a/webconference/forms.py b/webconference/forms.py index 22c81f0..fb31d93 100644 --- a/webconference/forms.py +++ b/webconference/forms.py @@ -6,7 +6,7 @@ import datetime from subjects.models import Tag -from .models import Webconference +from .models import Webconference, ConferenceSettings class WebconferenceForm(forms.ModelForm): subject = None @@ -104,3 +104,19 @@ class WebconferenceForm(forms.ModelForm): self.instance.tags.add(new_tag) return self.instance + + + +class SettingsForm(forms.ModelForm): + + class Meta: + model = ConferenceSettings + fields = ['domain'] + + labels = { + 'domain': _('Domain'), + } + + help_texts = { + 'domain': _('The domain of the jitsi server, e.g. meet.jit.si'), + } diff --git a/webconference/migrations/0002_conferencesettings.py b/webconference/migrations/0002_conferencesettings.py new file mode 100644 index 0000000..a04589d --- /dev/null +++ b/webconference/migrations/0002_conferencesettings.py @@ -0,0 +1,26 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.10.4 on 2017-03-22 19:31 +from __future__ import unicode_literals + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('webconference', '0001_initial'), + ] + + operations = [ + migrations.CreateModel( + name='ConferenceSettings', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('domain', models.CharField(max_length=100, verbose_name='Domain')), + ], + options={ + 'verbose_name': 'Conference Setting', + 'verbose_name_plural': 'Conferences Setting', + }, + ), + ] diff --git a/webconference/models.py b/webconference/models.py index f1119b4..5941f2f 100644 --- a/webconference/models.py +++ b/webconference/models.py @@ -30,3 +30,13 @@ class Webconference(Resource): def delete_message(self): return _('Are you sure you want delete the web conference') + +class ConferenceSettings(models.Model): + domain = models.CharField(_("Domain"), max_length = 100, blank=False, null = False) + + class Meta: + verbose_name = _("Conference Setting") + verbose_name_plural = _("Conferences Setting") + + def __str__(self): + return self.domain diff --git a/webconference/templates/webconference/config.html b/webconference/templates/webconference/config.html new file mode 100644 index 0000000..fb749df --- /dev/null +++ b/webconference/templates/webconference/config.html @@ -0,0 +1,51 @@ +{% extends 'base.html' %} + +{% load static i18n %} +{% load widget_tweaks %} +{% load django_bootstrap_breadcrumbs %} + +{% block breadcrumbs %} + {{ block.super }} + {% trans 'Settings: Conference' as bread %} + {% breadcrumb bread 'webconferences:settings' %} +{% endblock %} + +{% block content %} +
    +
    +
    +
    + {% csrf_token %} + {% for field in form %} +
    + + {% render_field field class='form-control' %} + + {{ field.help_text }} + + {% if field.errors %} + + {% endif %} +
    + {% endfor %} +
    +
    + +
    +
    +
    +
    +
    +
    +
    +
    +{% endblock %} diff --git a/webconference/templates/webconference/jitsi.html b/webconference/templates/webconference/jitsi.html index a4fe176..131f60c 100644 --- a/webconference/templates/webconference/jitsi.html +++ b/webconference/templates/webconference/jitsi.html @@ -27,15 +27,13 @@ diff --git a/webconference/urls.py b/webconference/urls.py index 4f1911e..08540be 100644 --- a/webconference/urls.py +++ b/webconference/urls.py @@ -12,4 +12,5 @@ urlpatterns = [ url(r'^view/(?P[\w_-]+)/$', views.InsideView.as_view(), name = 'view'), url(r'^conference/(?P[\w_-]+)/$',views.Conference.as_view(), name = 'conference'), url(r'^saiu/$',views.saiu, name = 'saiu'), + url(r'^settings/$', views.ConferenceSettings.as_view(), name = 'settings'), ] diff --git a/webconference/views.py b/webconference/views.py index 7902082..84fdb73 100644 --- a/webconference/views.py +++ b/webconference/views.py @@ -15,9 +15,10 @@ from log.mixins import LogMixin from topics.models import Topic from pendencies.forms import PendenciesForm +from braces import views as braces_mixins -from .forms import WebconferenceForm -from .models import Webconference +from .forms import WebconferenceForm, SettingsForm +from .models import Webconference, ConferenceSettings as Settings class NewWindowView(LoginRequiredMixin, # '''LogMixin,''' @@ -78,6 +79,11 @@ class Conference(LoginRequiredMixin,generic.TemplateView): context = super(Conference, self).get_context_data(**kwargs) context['name_room'] = kwargs.get('slug') context['user_image'] = 'http://localhost:8000'+str(self.request.user.image.url) + try: + context['domain'] = Settings.objects.last().domain + except AttributeError: + context['domain'] = 'meet.jit.si' + return context def saiu(request): @@ -428,3 +434,30 @@ generic.DeleteView): # super(DeleteView, self).createLog(self.request.user, self.log_component, self.log_action, self.log_resource, self.log_context) return reverse_lazy('subjects:view', kwargs = {'slug': self.object.topic.subject.slug}) + +class ConferenceSettings(braces_mixins.LoginRequiredMixin, braces_mixins.StaffuserRequiredMixin, generic.UpdateView): + login_url = reverse_lazy("users:login") + redirect_field_name = 'next' + + template_name = 'webconference/config.html' + model = Settings + form_class = SettingsForm + success_url = reverse_lazy("subjects:home") + + def get_object(self, queryset = None): + return Settings.objects.last() + + def form_valid(self, form): + form.save() + + messages.success(self.request, _("Conference settings updated successfully!")) + + return super(ConferenceSettings, self).form_valid(form) + + def get_context_data(self, **kwargs): + context = super(ConferenceSettings, self).get_context_data(**kwargs) + + context['title'] = _('Conference Settings') + # context['settings_menu_active'] = "settings_menu_active" + + return context -- libgit2 0.21.2