root/trunk/clinicaltrials/reviewapp/views.py @ 313

Revision 313, 3.4 kB (checked in by fabio.montefuscolo, 3 years ago)

put tickets and submissions in desc. order on dashboard, refers #44

Line 
1# coding: utf-8
2from django.core.urlresolvers import reverse
3from django.shortcuts import render_to_response, get_object_or_404
4from django.http import HttpResponseRedirect
5from django import forms
6from django.utils.translation import ugettext as _
7from django.contrib.auth.decorators import login_required
8
9from tickets.models import Ticket
10from reviewapp.models import Submission
11from repository.models import ClinicalTrial, CountryCode, Institution
12
13def index(request):
14    username = request.user.username if request.user.is_authenticated() else None
15    return render_to_response('reviewapp/index.html', locals())
16
17@login_required
18def dashboard(request):
19    username = request.user.username
20    user_tickets = Ticket.objects.order_by('-created').filter(creator=request.user)[:5]
21    user_submissions = Submission.objects.order_by('-created').filter(creator=request.user)[:5]
22    return render_to_response('reviewapp/dashboard.html', locals())
23
24@login_required
25def user_dump(request):
26    uvars = [{'k':k, 'v':v} for k, v in request.user.__dict__.items()]
27    return render_to_response('reviewapp/user_dump.html', locals())
28
29@login_required
30def submissions_list(request):
31    object_list = Submission.objects.filter(creator=request.user)
32    username = request.user.username if request.user.is_authenticated() else None
33    return render_to_response('reviewapp/submission_list.html', locals())
34
35@login_required
36def submission_detail(request,pk):
37    object = get_object_or_404(Submission, id=int(pk))
38    username = request.user.username if request.user.is_authenticated() else None
39    return render_to_response('reviewapp/submission_detail.html', locals())
40
41####################################################### New Submission form ###
42
43class InitialTrialForm(forms.Form):
44    form_title = _('Initial Trial Data')
45    scientific_title = forms.CharField(widget=forms.Textarea, label=_('Scientific Title'), max_length=2000)
46    recruitment_country = forms.MultipleChoiceField(choices=((cc.pk,cc.description) for cc in CountryCode.objects.iterator()) )
47
48class PrimarySponsorForm(forms.ModelForm):
49    class Meta:
50        model = Institution
51        exclude = ['address']
52    form_title = _('Primary Sponsor')
53
54@login_required
55def new_submission(request):
56    if request.method == 'POST':
57        initial_form = InitialTrialForm(request.POST,request.FILES)
58        sponsor_form = PrimarySponsorForm(request.POST)
59
60        if initial_form.is_valid() and sponsor_form.is_valid():
61            trial = ClinicalTrial()
62            su = Submission(creator=request.user)
63
64            trial.scientific_title = su.title = initial_form.cleaned_data['scientific_title']
65
66            trial.save()
67            su.save()
68
69            trial.primary_sponsor = su.primary_sponsor = sponsor_form.save()
70            trial.recruitment_country = [CountryCode.objects.get(pk=id) for id in initial_form.cleaned_data['recruitment_country']]
71            su.trial = trial
72
73            trial.save()
74            su.save()
75
76            return HttpResponseRedirect(reverse('repository.edittrial',args=[trial.id]))
77    else:
78        initial_form = InitialTrialForm()
79        sponsor_form = PrimarySponsorForm()
80
81
82    forms = [initial_form, sponsor_form]
83    return render_to_response('reviewapp/new_submission.html', {
84        'forms': forms,
85        'username':request.user.username,
86    })
Note: See TracBrowser for help on using the browser.