Ejemplo n.º 1
0
def get_widgets(request):
    """
    Returns the agenda widget for the projector tab.
    """
    return [
        Widget(request,
               name='agenda',
               display_name=_('Agenda'),
               template='agenda/widget.html',
               context={
                   'agenda':
                   SLIDE['agenda'],
                   'items':
                   Item.objects.all(),
                   'summary':
                   config['presentation_argument'] == 'summary',
                   'speakers':
                   config['presentation_argument'] == 'show_list_of_speakers'
               },
               permission_required='projector.can_manage_projector'),
        Widget(request,
               name='append_to_list_of_speakers',
               display_name=_('List of speakers'),
               template='agenda/speaker_widget.html',
               permission_required='agenda.can_be_speaker')
    ]
Ejemplo n.º 2
0
def get_widgets(request):
    return [
        Widget(name='assignments',
               display_name=_('Elections'),
               template='assignment/widget.html',
               context={'assignments': Assignment.objects.all()},
               permission_required='projector.can_manage_projector')
    ]
Ejemplo n.º 3
0
def get_widgets(request):
    return [
        Widget(name='motions',
               display_name=_('Motions'),
               template='motion/widget.html',
               context={'motions': Motion.objects.all()},
               permission_required='projector.can_manage_projector')
    ]
Ejemplo n.º 4
0
def get_group_widget(request):
    """
    Provides a widget with all groups. This is for short activation of
    group slides.
    """
    return Widget(name='group',
                  display_name=_('Groups'),
                  template='participant/group_widget.html',
                  context={'groups': Group.objects.all()},
                  permission_required='projector.can_manage_projector',
                  default_column=1)
Ejemplo n.º 5
0
def get_user_widget(request):
    """
    Provides a widget with all users. This is for short activation of
    user slides.
    """
    return Widget(name='user',
                  display_name=_('Participants'),
                  template='participant/user_widget.html',
                  context={'users': User.objects.all()},
                  permission_required='projector.can_manage_projector',
                  default_column=1)
Ejemplo n.º 6
0
def get_widgets(request):
    """
    return the agenda widget for the projector-tab.
    """
    return [
        Widget(
            name='agenda',
            display_name=_('Agenda'),
            template='agenda/widget.html',
            context={
                'agenda': SLIDE['agenda'],
                'items': Item.objects.all()},
            permission_required='projector.can_manage_projector')]
Ejemplo n.º 7
0
def get_personal_info_widget(request):
    """
    Provides a widget for personal info. It shows your submitted and supported
    motions, where you are on the list of speakers and where you are supporter
    or candidate. If one of the modules agenda, motion or assignment does
    not exist, it is not loaded. If all does not exist, the widget disapears.
    """
    personal_info_context = {}

    try:
        from openslides.agenda.models import Item
    except ImportError:
        pass
    else:
        personal_info_context.update({
            'items':
            Item.objects.filter(speaker__person=request.user,
                                speaker__begin_time=None)
        })
    try:
        from openslides.motion.models import Motion
    except ImportError:
        pass
    else:
        personal_info_context.update({
            'submitted_motions':
            Motion.objects.filter(submitter__person=request.user),
            'config_motion_min_supporters':
            config['motion_min_supporters'],
            'supported_motions':
            Motion.objects.filter(supporter__person=request.user)
        })
    try:
        from openslides.assignment.models import Assignment
    except ImportError:
        pass
    else:
        personal_info_context.update({
            'assignments':
            Assignment.objects.filter(assignmentcandidate__person=request.user,
                                      assignmentcandidate__blocked=False)
        })

    if personal_info_context:
        return Widget(request,
                      name='personal_info',
                      display_name=_('My items, motions and elections'),
                      template='account/personal_info_widget.html',
                      context=personal_info_context,
                      permission_required=None,
                      default_column=1)
Ejemplo n.º 8
0
def get_widgets(request):
    """
    Return the motion widgets for the dashboard.

    There is only one widget. It shows all motions.
    """
    return [
        Widget(request,
               name='motions',
               display_name=_('Motions'),
               template='motion/widget.html',
               context={'motions': Motion.objects.all()},
               permission_required='projector.can_manage_projector')
    ]
Ejemplo n.º 9
0
def get_personal_info_widget(request):
    """
    Provides a widget for personal info. It shows your submitted motions
    and where you are supporter or candidate.
    """
    personal_info_context = {
        'submitted_motions':
        Motion.objects.filter(submitter=request.user),
        'config_motion_min_supporters':
        config['motion_min_supporters'],
        'supported_motions':
        Motion.objects.filter(motionsupporter=request.user),
        'assignments':
        Assignment.objects.filter(assignmentcandidate__person=request.user,
                                  assignmentcandidate__blocked=False),
    }
    return Widget(name='personal_info',
                  display_name=_('My motions and elections'),
                  template='participant/personal_info_widget.html',
                  context=personal_info_context,
                  permission_required=None,
                  default_column=1)
Ejemplo n.º 10
0
def get_widgets(request):
    """
    Return the widgets of the projector app
    """
    widgets = []

    # welcome widget
    context = {
        'welcometext': config['welcome_text']}
    widgets.append(Widget(
        name='welcome',
        display_name=config['welcome_title'],
        template='projector/welcome_widget.html',
        context=context,
        permission_required='projector.can_see_dashboard',
        default_column=1))

    # Projector live view widget
    widgets.append(Widget(
        name='live_view',
        display_name=_('Projector live view'),
        template='projector/live_view_widget.html',
        context = RequestContext(request, {}),
        permission_required='projector.can_see_projector',
        default_column=2))

    # Overlay Widget
    overlays = []
    for receiver, name in projector_overlays.send(sender='registerer',
                                                  register=True):
        if name is not None:
            try:
                projector_overlay = ProjectorOverlay.objects.get(
                    def_name=name)
            except ProjectorOverlay.DoesNotExist:
                projector_overlay = ProjectorOverlay(def_name=name,
                    active=False)
                projector_overlay.save()
            overlays.append(projector_overlay)

    context = {
            'overlays':overlays,
            'countdown_time': config['countdown_time'],
            'countdown_state' : config['countdown_state']}
    context.update(csrf(request))
    widgets.append(Widget(
        name='overlays',
        display_name=_('Overlays'),
        template='projector/overlay_widget.html',
        permission_required='projector.can_manage_projector',
        default_column=2,
        context=context))


    # Custom slide widget
    context = {
        'slides': ProjectorSlide.objects.all().order_by('weight'),
        'welcomepage_is_active': not bool(config["presentation"])}
    widgets.append(Widget(
        name='custom_slide',
        display_name=_('Custom Slides'),
        template='projector/custom_slide_widget.html',
        context=context,
        permission_required='projector.can_manage_projector',
        default_column=2))

    return widgets
Ejemplo n.º 11
0
 def test_error(self):
     with self.assertRaises(OpenSlidesError):
         w = Widget(HttpRequest(), name='chahghuyeim8ie0Noong')