Exemple #1
0
 def test_evaluieren_bestellung(self):
     """Veranstaltung nimmt an der Evalution teil. Es werden alle nötigen Daten angegeben"""
     form_data = self.fullFormExample
     form_data.update({'evaluieren': 'on', 'typ': 'vu', 'ergebnis_empfaenger': [self.p[0].id]})
     form = BestellungModelForm(instance=self.v, data=form_data)
     
     self.assertTrue(form.is_valid(), 'Form wurde als invalide evaluiert obwohl alle nötigen Felder angegeben sind. Prüfen ob wirklich alle nötigen Felder angegeben sind')
Exemple #2
0
    def test_evaluate_partiel_complete_bestellung(self):
        """Veranstaltung nimmt an der Evaluation teil. Es werden nicht alle benötigen Daten übertragen. Alle Kombinationen werden getestet"""
        requiredFields = self.fullFormExample

        # ja es gibt 2^n - 2 kombinationen!
        iterationEnd = pow(2, len(requiredFields)) - 1
        noBits = len(requiredFields) + 2  # +2 für '0b'
        binFormat = "#0%db" % noBits

        for i in range(1, iterationEnd):
            # Wir nehmen immer an der Evaluation teil
            formData = {'evaluieren': 'on'}
            # Die aktuelle Auswahl als nBit String
            selection = format(i, binFormat).split('b')[1]

            # Teste das die Anzahl der Bits immer gleich der Felder ist
            self.assertEqual(len(requiredFields), len(selection),
                             'Die Anzahl Bits stimmt nicht mit der Anzahl der Felder überein')

            # iterriere über die Zeichen im String
            for bitNumber in range(0, len(requiredFields)):
                # Wenn das Bit gesetzt ist
                if selection[bitNumber] == '1':
                    # füge das Feld zum Form hinzu
                    formData.update({requiredFields.keys()[bitNumber]: requiredFields.values()[bitNumber]})

            form = BestellungModelForm(instance=self.v, data=formData)
            self.assertFalse(form.is_valid(),
                             'Form ist valide obwohl nicht alle Felder gesetzt sind. Daten: %s' % str(formData))
Exemple #3
0
 def test_evaluate_partiel_complete_bestellung(self):
     """Veranstaltung nimmt an der Evaluation teil. Es werden nicht alle benötigen Daten übertragen. Alle Kombinationen werden getestet"""
     requiredFields = self.fullFormExample
     
     #ja es gibt 2^n - 2 kombinationen!
     iterationEnd = pow(2,len(requiredFields))-1
     noBits = len(requiredFields) +2 #+2 für '0b'
     binFormat= "#0%db" % noBits
     
     for i in range(1,iterationEnd):
         #Wir nehmen immer an der Evaluation teil
         formData = {'evaluieren':'on'}
         #Die aktuelle Auswahl als nBit String
         selection=format(i, binFormat).split('b')[1]
         
         #Teste das die Anzahl der Bits immer gleich der Felder ist
         self.assertEqual(len(requiredFields), len(selection), 'Die Anzahl Bits stimmt nicht mit der Anzahl der Felder überein')
         
         #iterriere über die Zeichen im String
         for bitNumber in range(0,len(requiredFields)):
             #Wenn das Bit gesetzt ist
             if selection[bitNumber]=='1':
                 #füge das Feld zum Form hinzu
                 formData.update({requiredFields.keys()[bitNumber]:requiredFields.values()[bitNumber]})
         
         form = BestellungModelForm(instance=self.v, data=formData)
         self.assertFalse(form.is_valid(), 'Form ist valide obwohl nicht alle Felder gesetzt sind. Daten: %s'%str(formData))
Exemple #4
0
 def test_nicht_evaluieren_bestellung(self):
     """Veranstaltung nimmt nicht an der Evaluation teil. Jede Bestellung ist gültig."""
     #Aktuell wird eine nicht auswahl von evaluieren mit nicht übertragen
     #des Feldes dargestellt. Darum werden einfach keine Daten übertragen
     form_data = {'typ': 'vu'}
     form = BestellungModelForm(instance=self.v, data=form_data)
     
     self.assertTrue(form.is_valid(), 'Veranstaltung nimmt nicht an der Evaluation teil. Trotzdem ist das Form ungültig')
Exemple #5
0
 def test_evaluieren_null_boegen_bestellung(self):
     """Veranstaltng nimmt an der Evaluation teil. Es werden aber 0 Bögen bestellt"""
     form_Data = self.fullFormExample
     form_Data.update({'evaluieren':'on'})
     form_Data['anzahl'] = 0
     
     form = BestellungModelForm(instance=self.v, data=form_Data)
     self.assertFalse(form.is_valid(), 'Es wurden 0 Bögen bestellt, trotzdem ist die Bestellung gültig')
Exemple #6
0
    def test_evaluieren_bestellung(self):
        """Veranstaltung nimmt an der Evalution teil. Es werden alle nötigen Daten angegeben"""
        form_data = self.fullFormExample
        form_data.update({'evaluieren': 'on', 'typ': 'vu', 'ergebnis_empfaenger': [self.p[0].id]})
        form = BestellungModelForm(instance=self.v, data=form_data)

        self.assertTrue(form.is_valid(),
                        'Form wurde als invalide evaluiert obwohl alle nötigen Felder angegeben sind. Prüfen ob wirklich alle nötigen Felder angegeben sind')
Exemple #7
0
    def test_evaluieren_null_boegen_bestellung(self):
        """Veranstaltng nimmt an der Evaluation teil. Es werden aber 0 Bögen bestellt"""
        form_Data = self.fullFormExample
        form_Data.update({'evaluieren': 'on'})
        form_Data['anzahl'] = 0

        form = BestellungModelForm(instance=self.v, data=form_Data)
        self.assertFalse(form.is_valid(), 'Es wurden 0 Bögen bestellt, trotzdem ist die Bestellung gültig')
Exemple #8
0
    def test_nicht_evaluieren_bestellung(self):
        """Veranstaltung nimmt nicht an der Evaluation teil. Jede Bestellung ist gültig."""
        # Aktuell wird eine nicht auswahl von evaluieren mit nicht übertragen
        # des Feldes dargestellt. Darum werden einfach keine Daten übertragen
        form_data = {'typ': 'vu'}
        form = BestellungModelForm(instance=self.v, data=form_data)

        self.assertTrue(form.is_valid(),
                        'Veranstaltung nimmt nicht an der Evaluation teil. Trotzdem ist das Form ungültig')
Exemple #9
0
def index(request):
    if request.user.username != settings.USERNAME_VERANSTALTER:
        return render(request, 'veranstalter/not_authenticated.html')

    data = {}
    veranst = Veranstaltung.objects.get(id=request.session['vid'])

    #TODO: statt Betrachtung der Sichtbarkeit automatisch aktuelles Semester (-> Kalender) annehmen
    if veranst.semester.sichtbarkeit == 'ADM' and Einstellung.get('bestellung_erlaubt') == '1':
        if request.method == 'POST':
            order_form = BestellungModelForm(request.POST, instance=veranst)
            if order_form.is_valid():
                order_form.save()
                return redirect('VerantwortlicherUpdate')
        else:
            order_form = BestellungModelForm(instance=veranst)
        data['order_form'] = order_form
        data['paper_dict'] = past_semester_orders(veranst)

    if veranst.semester.sichtbarkeit != 'ADM':
        try:
            kommentar = Kommentar.objects.get(veranstaltung=veranst)
        except Kommentar.DoesNotExist:
            kommentar = None

        if request.method == 'POST':
            comment_form = KommentarModelForm(request.POST, instance=kommentar, veranstaltung=veranst)
            if comment_form.is_valid():
                #TODO: löschen ermöglichen
                kommentar = comment_form.save(commit=False)
                kommentar.veranstaltung = veranst
                kommentar.save()
                messages.success(request, 'Ihre Änderungen wurden gespeichert.')
        else:
            comment_form = KommentarModelForm(instance=kommentar, veranstaltung=veranst)
        data['comment_form'] = comment_form

    data['veranstaltung'] = veranst
    return render(request, 'veranstalter/index.html', data)
Exemple #10
0
def index(request):
    if request.user.username != settings.USERNAME_VERANSTALTER:
        return render(request, 'veranstalter/not_authenticated.html')

    data = {}
    veranst = Veranstaltung.objects.get(id=request.session['vid'])

    # TODO: statt Betrachtung der Sichtbarkeit automatisch aktuelles Semester (-> Kalender) annehmen
    if veranst.semester.sichtbarkeit == 'ADM' and Einstellung.get(
            'bestellung_erlaubt') == '1':
        if request.method == 'POST':
            order_form = BestellungModelForm(request.POST, instance=veranst)
            if order_form.is_valid():
                order_form.save()
                return redirect('VerantwortlicherUpdate')
        else:
            order_form = BestellungModelForm(instance=veranst)
        data['order_form'] = order_form
        data['paper_dict'] = past_semester_orders(veranst)

    if veranst.semester.sichtbarkeit != 'ADM':
        try:
            kommentar = Kommentar.objects.get(veranstaltung=veranst)
        except Kommentar.DoesNotExist:
            kommentar = None

        if request.method == 'POST':
            comment_form = KommentarModelForm(request.POST,
                                              instance=kommentar,
                                              veranstaltung=veranst)
            if comment_form.is_valid():
                # TODO: löschen ermöglichen
                kommentar = comment_form.save(commit=False)
                kommentar.veranstaltung = veranst
                kommentar.save()
                messages.success(request,
                                 'Ihre Änderungen wurden gespeichert.')
        else:
            comment_form = KommentarModelForm(instance=kommentar,
                                              veranstaltung=veranst)
        data['comment_form'] = comment_form

    data['veranstaltung'] = veranst
    return render(request, 'veranstalter/index.html', data)
Exemple #11
0
 def test_evaluate_leere_bestellung(self):
     """Veranstaltung nimmt an der Evaluation teil. Es werden keine weiteren Felder übertragen"""
     form_data = {'evaluieren': 'on'}
     form = BestellungModelForm(instance=self.v, data=form_data)
     self.assertFalse(form.is_valid(), 'Form wurde als valide evaluiert obwohl Anzahl etc fehlen')
Exemple #12
0
 def test_evaluate_leere_bestellung(self):
     """Veranstaltung nimmt an der Evaluation teil. Es werden keine weiteren Felder übertragen"""
     form_data = {'evaluieren': 'on'}
     form = BestellungModelForm(instance=self.v, data=form_data)
     self.assertFalse(form.is_valid(), 'Form wurde als valide evaluiert obwohl Anzahl etc fehlen')
Exemple #13
0
    def test_init(self):
        with self.assertRaises(KeyError):
            BestellungModelForm()

        form = BestellungModelForm(instance=self.v)
        self.assertItemsEqual(form.fields['verantwortlich'].queryset.all(), (self.p[0],))