Skip to content

Commit

Permalink
Merge pull request #48 from yduman/user-story-50
Browse files Browse the repository at this point in the history
Statusmanagement
  • Loading branch information
ckleemann committed Mar 20, 2017
2 parents e80e8e3 + da852e4 commit 0936948
Show file tree
Hide file tree
Showing 4 changed files with 26 additions and 4 deletions.
5 changes: 5 additions & 0 deletions src/feedback/models/base.py
Original file line number Diff line number Diff line change
Expand Up @@ -557,6 +557,11 @@ def link_veranstalter(self): # @see http://stackoverflow.com/a/17948593
else:
return "Der Veranstalter Link wird erst nach dem Anlegen angezeigt"

def allow_order(self):
return self.status == Veranstaltung.STATUS_BESTELLUNG_LIEGT_VOR or \
self.status == Veranstaltung.STATUS_BESTELLUNG_GEOEFFNET or \
self.status == Veranstaltung.STATUS_KEINE_EVALUATION

def csv_to_tutor(self, csv_content):
"""Erzeuge Tutoren Objekte aus der CSV Eingabe der Veranstalter"""
input_clean = csv_content.strip()
Expand Down
10 changes: 9 additions & 1 deletion src/feedback/tests/test_views_veranstalter.py
Original file line number Diff line number Diff line change
Expand Up @@ -60,7 +60,15 @@ def setUp(self):
def test_unauth(self):
response = self.client.get('/veranstalter/')
self.assertEqual(response.templates[0].name, 'veranstalter/not_authenticated.html')


def test_invalid_state(self):
Einstellung.objects.create(name='bestellung_erlaubt', wert='0')
c = login_veranstalter(self.v)
self.v.status = Veranstaltung.STATUS_GEDRUCKT
self.v.save()
response = c.get('/veranstalter/bestellung')
self.assertEqual(302, response.status_code)

def test_nothing(self):
Einstellung.objects.create(name='bestellung_erlaubt', wert='0')
c = login_veranstalter(self.v)
Expand Down
7 changes: 6 additions & 1 deletion src/feedback/views/veranstalter.py
Original file line number Diff line number Diff line change
Expand Up @@ -44,6 +44,7 @@ def veranstalter_dashboard(request):

data["veranstaltung"] = veranst
data["logs"] = Log.objects.filter(veranstaltung=veranst).order_by('timestamp')
data["allow_order"] = veranst.allow_order()

if veranst.status >= Veranstaltung.STATUS_BESTELLUNG_GEOEFFNET:
bestellung = []
Expand Down Expand Up @@ -192,7 +193,11 @@ def get_cleaned_basisdaten(self):
def get(self, request, *args, **kwargs):
if self.request.user.username != settings.USERNAME_VERANSTALTER:
return render(self.request, 'veranstalter/not_authenticated.html')
return super(VeranstalterWizard, self).get(request, *args, **kwargs)
veranstaltung = self.get_instance()
if veranstaltung.allow_order():
return super(VeranstalterWizard, self).get(request, *args, **kwargs)
else:
return HttpResponseRedirect(reverse('veranstalter-index'))

def get_context_data(self, form, **kwargs):
context = super(VeranstalterWizard, self).get_context_data(form=form, **kwargs)
Expand Down
8 changes: 6 additions & 2 deletions src/templates/veranstalter/dashboard.html
Original file line number Diff line number Diff line change
Expand Up @@ -77,7 +77,9 @@ <h1><span class="header_veranst">{{ veranstaltung.name }} - </span>Dashboard</h1
{% if bestellung %}
<div class="orderHeadContainer">
<span style="display: block; float: left" class="subHeaderDashboard">Aktuelle Bestellung</span>
<button class="orderButton" onclick="window.location='{% url 'veranstalter-bestellung' %}';">Bestellung ändern</button>
{% if allow_order %}
<button class="orderButton" onclick="window.location='{% url 'veranstalter-bestellung' %}';">Bestellung ändern</button>
{% endif %}
</div>
<div class="dashboardOrderContainer dashboardTableBordered">

Expand Down Expand Up @@ -116,7 +118,9 @@ <h1><span class="header_veranst">{{ veranstaltung.name }} - </span>Dashboard</h1
</table>
</div>
{% else %}
<button style="padding: 2px;" onclick="window.location='{% url 'veranstalter-bestellung' %}';">Bestellung durchführen</button>
{% if allow_order %}
<button style="padding: 2px;" onclick="window.location='{% url 'veranstalter-bestellung' %}';">Bestellung durchführen</button>
{% endif %}
{% endif %}


Expand Down

0 comments on commit 0936948

Please sign in to comment.