From 3138be98442e3a416d9ec50c648b75ba503ebbaf Mon Sep 17 00:00:00 2001 From: vale981 Date: Sun, 13 Apr 2014 20:09:27 +0200 Subject: [PATCH] script solution --- db.sqlite3 | Bin 50176 -> 55296 bytes fahrschule_vale981/settings.py | 7 +++-- fs_quiz/models.py | 49 +++++++++++++++++---------------- fs_quiz/views.py | 39 +++++++++++++------------- templates/quiz.html | 43 ++++++++++++++++++++--------- 5 files changed, 80 insertions(+), 58 deletions(-) diff --git a/db.sqlite3 b/db.sqlite3 index de1dab1990a306283a0345d16f84e0673b418b6c..1d80f8f3448ff5ab6a14c8451f065da3d80819e5 100644 GIT binary patch delta 3437 zcmcIneQZmEV0wScaX+U4>m-r=)9qi|% zpjP39X==A>YI>_p>PCn*O{<2q#^evwO_f%%FKH56H*G>&CV@aL>jV_qQf;u0d+j6( z=3{8muI%Ic?)jZ_?m73|bDodA0LSLxWqVl{Ldeg)D`V44mxnEGeiuw^$qawy40m>X z9Ne8vY}#1Qh@+a3$_hrx)-z(UGGZ1>7&U<%!EfMua1{E$o;4(xl1&l{OL%>=RN{8Y z-pwxWX4ykzSGUj8EeD-$kH-~oOYVJ|N`}>#o+bwmc8GZq+dU%gZm-|z^U88CWO46R z)4IDI^4N+(tk>1;2{_$T{(v_Slw=NW7aoB1gt|R`r#BdoeX@l?^|TY`q4kAoJ;83D z*BSEoyk4Iqtk z*r%GNwrvX>?mZlRQch@U(;n|0x9>ArAky#s!sGi#Qt{ocC;MW-&kv<{xa82}7k9|P zJ-fE=p4{I*y5;WE@dUbk0cR-W_xOSnN?Z*E<$D0`pwsX32HkG%8-|Y&`z(}O-Uo*j z?9#GSE-g?$VxQNAjPN?VIb(zuUfVhZ^v8R**K)R1xQ^fw{1o1RZ$kKbW-M$=}q4Xgh?&T-?*!I6wSz#-JYw#=hBfJH3uoq%1`?kW@vPKhZ+#uTR z_--L9-TTzM1w$o*N+`-2{}AX)ed}8U)6VGwVZRcKBs^L$Iyg9)8BIOwiiKPg>7?w7 zDPC7-Ql@YBWgP*YzC1udr%U#Q+V#jyvE3j~^BWX9OPAPoFduo@dG%(m86Y^d~T?5oArb{;T{=MbLD8sETEUp|0M zsQ$%Hp5M7l>`kWBF`|v9Gh-y0j3-kht?5J=Q}r$qNhZ=P&-4siRH6(M(GtT%jcakiE7FiNhA}Qu_Hv)Qe(*|(bchWrbJ6jXwghUCmEf@l|g2Ns5*&GaSJLLQ-%`? zQR3R+%n_zRO)1RUs=|q6JTtCm6ekJmWI|0PiJDAvaU~MTq&Z$EBbl_GB+(4}=2YhR zszOrgU}nro`q{2Ygl$wIqe?nThBJd|YB;4%CA!#tnJI#B<-D81R&O^0H5D}IH5sOHYcrg&* zBLuhMBX$|CKvj{5B`gS{C`nRY*Hr|cz*WY*2=x{LkS$ls%@|MxufBQEO>Xce1HB71 zMce|{vBm`3&~5mT@!tc7S;UsK^Cb8D=SJA4o9k^~8V5ZNUO*oIcs?D~}PW%;{t_;T2Z6JfmWSsQv+DrNddVBMAL4eB$Zoy?1lk?C~ z%3{_mt!=Cp7QG6I$C^hN!!3@!02dhk_uwFFj&@^yZow9IqI{g57sYiZcmlzBn1`>! z5Im7Jx?rlM&V*##zD-Gxd=q0gHrK=odRmKP6_@X8tGK({9H}*-PTa`#u~xSVTGRGg z?5mohDt+tBcDAi62=1_qx(Qd|3UlTUK!1`H+e{)zSmXpa5diY}SAbP7B1o5EIM z37(%Zz6l1Zp}*C9xPkVZsGxHrR(f5t(8oubS;h>E_;AzmdJnFp7e+j|nTCxGv~{!x zJLvFe7`L$JW_oVa4MtrZ{nxQDZe=S6aXp5>fTp zf(w2~jzryofGbk4?&kp*T2A~`Py^Z3M;Z#C{4%pU&hPwl9eGoZ`z>% delta 3083 zcmb_eZERE58NTPdcI@lK4H-+a5Fk!S8j=!o@3rrTjar(IK>{QJnlugSS`zyjf5q3> zCJwA>xU@f-W9={xi=-A!f6lZ)i1WQOdX zGan<9EpDD`=Sg`b@0JA7-zNCmM9CwGK}iYAQRLPw$)U)V zgM#V}Xi7j3o#N0)*0V>C<~BZ3Qsmcsh3^Z>f>#ZwnkG1Wq498JJhaKa5S(mSl(!h% z7xeqQ+N7cg0iQz($Bjtbh=&ZiRga}~&n7(?)-$-^*<&fZ$ay!~?gVQ4N+7J>kH!0x zrEzkxTvA^Wpa+Tpnn_?ufJsXeUr-Eq6`!Q3m`Nxc55^d^59iEtbkbZ--JIFn z?yPpZ-A=weJ(>tdq-V3y5lL1WMM)5Z#wVZZ9)B`0ye%^v+1aS=(7(OjNbG9gvcGF| zk7~p^6P=k+Wk^d6j%CL6QKNIBSKco4$Q{O`i!w?cQ4UJDp^{e+{F3G`oL8K#zSB?G zB-V-cW0jh$iY&UJaWb844?VSKyI$)2U_qIy0pCk0kYghGi`@a`B`Ig~YHsRiC98g{vG~ z1@hT^h4T_L@lZ_)`BE3u@(U3x^RRKRa`=CpzD=*sn$z=7JRX4+)&viw99)K9!B60O zkbyzi2+dGBXWpc&bn_QgJPdGf4SoxMgm>U|7=S1ofSEZn2<-8#Wo-A>V=hXMa_|B@ zN~h+`=PBd+%O3`N@1gIsCnNDhVj`jVBRM&)DmhI}j%k^|m=-&bimRb4d#rzMQn4C& zq3nQ)wSJe_drf=0Xr!dDnA_*i=Thl_kXMuby#t8@eepqQ*XF_e z@Yv3=zOHbxuPd>?uWN_At83HPu7RHXur!?S9oQM|iw{riif zBATNT6ww?NMU^!dyos6~;oxI90&k+IFG5Qr^pXeF0w`tEtXZ$EfnNSWxm&uIaA!E~ z458#bT0(ygXJ*ag?5)nt^T~n#(1$Dnz%&PE;Ri5{Sv&`m%fZIg)D?}$KzG5vSiFJS zxH@&wZ{mg?4;yhkZ-n!qa5j_;hr`(o#Ky@_+^-XpMn)e)dM0A%c?=h^ei@5LbR!?Z zfe20&Gr==v{}TQIS22}~u%-l4Aq1!$S0_BR;Q~BwokoC9Ik*M?gin$92{brt#Nt7T zjqrq0n~mrBV#MPd{2qP*$B}mw5*27?)#c^oPN%cr_@d;iMOUh7K-Mw?a8E`9nxc2Ps+Nt7PE6{j!TmZbSJ$C;aT$;*P*8? z9o5avhQjaot%~$tUYqWyByqxf5YG5Z}4Yq z{ZHTz@H@BwzrmM_cX2H}y7Vs80EpS*+Vu9TPc9Sh%?S^^l1?3ie z2G`*)82KXZ@dxM~zl6779wW~J+s{7tmHf zC?K@~;T?rX28=StVSHpX7J|=5*sIPXKeD^I+Z=bByhc6r81&DYe+6^(3U&$A@Sqyc zkXm+dMkWmfrQVxS!9+!CPRL}2jfJr?UbZcBQ8>%NpRj9>70xxQIJk1_YG@~SJRA+@9=C&4(9SQJzSoWlO?AWC zuz$gg`HH76Lp|yO1r;a-DE5<`lyan$OwmgEI{a+b{DMAL$38zPl80IAscl$t{#1Z8 zv$<3KF4I}>sO}Vr*}|SbRl_3ZYDf!CG_W6@TL*`}(ZJNSLRwiW{V{5>b#Hh1BgMwP zSv)j1v9QYprE4fyJHMC%SWlw=uSs0t;B&YES8&abV1*N1r_yP?yOyBuR5-i)OVD^K z`0m&n&)IBF3a2^v2u>sU7_ieX47dR95^mK!!hPMkXeEcbz7Nqk(?P*h8rds*Tgf_< kXcfD(Hw9*O6Z_!YMzWq&oF7KT6X!RwW#^mNh4bQn0aF$G6951J diff --git a/fahrschule_vale981/settings.py b/fahrschule_vale981/settings.py index 8093460..9874488 100644 --- a/fahrschule_vale981/settings.py +++ b/fahrschule_vale981/settings.py @@ -58,8 +58,11 @@ WSGI_APPLICATION = 'fahrschule_vale981.wsgi.application' DATABASES = { 'default': { - 'ENGINE': 'django.db.backends.sqlite3', - 'NAME': os.path.join(BASE_DIR, 'db.sqlite3'), + 'ENGINE': 'django.db.backends.postgresql_psycopg2', + 'NAME': 'fahrschule_1', + 'USER': 'postgres', + 'PASSWORD': 'valentin', + 'HOST': 'localhost' } } diff --git a/fs_quiz/models.py b/fs_quiz/models.py index 9a4f131..0fc1a02 100644 --- a/fs_quiz/models.py +++ b/fs_quiz/models.py @@ -19,29 +19,15 @@ class Quiz(models.Model) : def __str__(self): # __unicode__ on Python 2 return self.title -class Frage(models.Model): - - quiz = models.ManyToManyField(Quiz, blank=True, ) - - content = models.CharField(max_length=1000, - blank=False, - verbose_name='Frage Text', - ) - class Admin: - pass - def __unicode__(self): - return self.content - def __str__(self): # __unicode__ on Python 2 - return self.content class Antwort(models.Model): - frage = models.ManyToManyField(Frage, blank=False, ) + content = models.CharField(max_length=1000, blank=False, @@ -56,20 +42,35 @@ class Antwort(models.Model): def __str__(self): # __unicode__ on Python 2 return self.content - def get_related_to(self, status): - return self.related_to.filter( - from_people__status=status, - from_people__to_person=self) + class Admin: pass +class Frage(models.Model): + quiz = models.ManyToManyField(Quiz, blank=True, ) -class Results: - quiz=models.ManyToManyField(Quiz, blank=True, ) - frage=models.ManyToManyField(User, blank=True, ) - user=models.ManyToManyField(User, blank=True, ) + content = models.CharField(max_length=1000, + blank=False, + verbose_name='Frage Text', + ) + antworten = models.ManyToManyField(Antwort, blank=False, verbose_name='Antworten' ) + + class Admin: + pass + + def __unicode__(self): + return self.content + def __str__(self): # __unicode__ on Python 2 + return self.content + +class Results(models.Model): + quiz=models.ForeignKey(Quiz, blank=True, ) + frage=models.ForeignKey(Frage, blank=True, ) + user=models.ForeignKey(User, blank=True, ) richtig = models.BooleanField(blank=True) - choice = models.ManyToManyField(Antwort) \ No newline at end of file + aw = models.ForeignKey(Antwort) + choice = models.BooleanField(blank=True) + diff --git a/fs_quiz/views.py b/fs_quiz/views.py index d02c6a3..46bed5e 100644 --- a/fs_quiz/views.py +++ b/fs_quiz/views.py @@ -27,15 +27,6 @@ def quiz(request, quiz_id=1): cs = {} cs.update(csrf(request)) - # AuthorFormSet = modelformset_factory(Results, form=ResultForm) - # if request.method == 'POST': - # formset = AuthorFormSet(request.POST, request.FILES) - # if formset.is_valid(): - # formset.save() - # # do something. - # else: - # formset = AuthorFormSet(queryset=Frage.objects.filter(quiz=quiz_id)) - height=75*Frage.objects.count() height_menu = height + 10 if Frage.objects.count() == 0: @@ -43,24 +34,34 @@ def quiz(request, quiz_id=1): height_menu = height len_quiz = len(Quiz.objects.get(id=quiz_id).title) + count=Frage.objects.filter(quiz=quiz_id).count + count_aw = 0 + aw = Frage.objects.filter(quiz=quiz_id) + cs.update({'quiz': Quiz.objects.get(id=quiz_id), 'Frage': Frage.objects.filter(quiz=quiz_id), 'len': len_quiz, 'hg': height, 'hg_m': height_menu, 'user': request.user, - 'aw': Antwort.objects.all()}) + 'aw': Antwort.objects.all(), + 'count': count, + 'count_aw': count_aw}) return render_to_response('quiz.html', cs) def check_view(request): - check = request.POST.get('aw_check', '') - user = request.POST.get('user_log', '') - frage = request.POST.get('frage', '') - antwort = request.POST.get('antwort', '') - richtig = request.POST.get('richtig', '') - quiz_get = request.POST.get('quiz', '') - res = Results(quiz=quiz_get, frage=frage, user=user, richtig=richtig, choice=check) - res.save() - return HttpResponseRedirect('/quiz/all/') + check = request.POST.get('aw_check', '') + user_id = request.POST.get('user_log', '') + user_act = User.objects.get(id=user_id) + frage_id = request.POST.get('frage', '') + frage = Frage.objects.get(id=frage_id) + antwort_id = request.POST.get('antwort', '') + antwort = Antwort.objects.get(id=antwort_id) + richtig = request.POST.get('richtig', '') + quiz_id = request.POST.get('quiz', '') + quiz = Quiz.objects.get(id=quiz_id) + res = Results(quiz=quiz, frage=frage, user=user_act, richtig=richtig, choice=check, aw=antwort) + res.save() + return HttpResponseRedirect('/quiz/all/') diff --git a/templates/quiz.html b/templates/quiz.html index 43c10c3..bbef804 100644 --- a/templates/quiz.html +++ b/templates/quiz.html @@ -1,3 +1,4 @@ + {% extends 'quizzes.html' %} @@ -5,6 +6,7 @@ {% load staticfiles %} + {% block header %} {% if len >= 20 %}
{{ quiz.title }}
@@ -22,30 +24,45 @@
    {% for Frage in Frage %}
  1. {{Frage.content}}
  2. - {% comment %}
    - {{ formset }} -
    {% endcomment %} - {% for aw in aw %} - {% if aw.frage.get == Frage %} -
    {% csrf_token %} + {% for aw in Frage.antworten.all %} + {% csrf_token %} - - - - + + + + {% if aw.richtig %} {% else %} {% endif %} -
    - {% endif %} + +
    + +
    + {% endfor %} {% endfor %} -
+ + + + + + + + {% endblock %}