summaryrefslogtreecommitdiff
path: root/website/forms.py
diff options
context:
space:
mode:
Diffstat (limited to 'website/forms.py')
-rw-r--r--website/forms.py78
1 files changed, 13 insertions, 65 deletions
diff --git a/website/forms.py b/website/forms.py
index b982d54..e2e6783 100644
--- a/website/forms.py
+++ b/website/forms.py
@@ -1,85 +1,33 @@
from django import forms
from website.models import *
-
-categories = (
- ("None", "Select a Category"),
- ("General", "General"),
- ('Advanced-C++', 'Advanced-C++'),
- ('BASH', 'BASH'),
- ('Blender', 'Blender'),
- ('C-and-C++', 'C-and-C++'),
- ('CellDesigner', 'CellDesigner'),
- ('Digital-Divide', 'Digital-Divide'),
- ('Drupal', 'Drupal'),
- ('Firefox', 'Firefox'),
- ('GChemPaint', 'GChemPaint'),
- ('Geogebra', 'Geogebra'),
- ('GeoGebra-for-Engineering-drawing', 'GeoGebra-for-Engineering-drawing'),
- ('GIMP', 'GIMP'),
- ('GNS3', 'GNS3'),
- ('GSchem', 'GSchem'),
- ('Inkscape', 'Inkscape'),
- ('Java', 'Java'),
- ('Java-Business-Application', 'Java-Business-Application'),
- ('KiCad', 'KiCad'),
- ('KTouch', 'KTouch'),
- ('KTurtle', 'KTurtle'),
- ('LaTeX', 'LaTeX'),
- ('LibreOffice-Suite-Base', 'LibreOffice-Suite-Base'),
- ('LibreOffice-Suite-Calc', 'LibreOffice-Suite-Calc'),
- ('LibreOffice-Suite-Draw', 'LibreOffice-Suite-Draw'),
- ('LibreOffice-Suite-Impress', 'LibreOffice-Suite-Impress'),
- ('LibreOffice-Suite-Math', 'LibreOffice-Suite-Math'),
- ('LibreOffice-Suite-Writer', 'LibreOffice-Suite-Writer'),
- ('Linux', 'Linux'),
- ('Netbeans', 'Netbeans'),
- ('Ngspice', 'Ngspice'),
- ('OpenFOAM', 'OpenFOAM'),
- ('Orca', 'Orca'),
- ('Oscad', 'Oscad'),
- ('PERL', 'PERL'),
- ('PHP-and-MySQL', 'PHP-and-MySQL'),
- ('Python', 'Python'),
- ('Python-Old-Version', 'Python-Old-Version'),
- ('QCad', 'QCad'),
- ('R', 'R'),
- ('Ruby', 'Ruby'),
- ('Scilab', 'Scilab'),
- ('Selenium', 'Selenium'),
- ('Single-Board-Heater-System', 'Single-Board-Heater-System'),
- ('Spoken-Tutorial-Technology', 'Spoken-Tutorial-Technology'),
- ('Step', 'Step'),
- ('Thunderbird', 'Thunderbird'),
- ('Tux-Typing', 'Tux-Typing'),
- ('What-is-Spoken-Tutorial', 'What-is-Spoken-Tutorial'),
- ('Xfig', 'Xfig')
-)
+from spoken_auth.models import TutorialDetails, TutorialResources, FossCategory
+from django.db.models import Q
tutorials = (
- ("None", "Select a Tutorial"),
+ ("", "Select a Tutorial"),
)
minutes = (
- ("None", "min"),
+ ("", "min"),
)
seconds= (
- ("None", "sec"),
+ ("", "sec"),
)
class NewQuestionForm(forms.Form):
- #fix dirty code
+ category = forms.ChoiceField(choices = [('', 'Select a Category'),] + list(TutorialResources.objects.filter(Q(status = 1) | Q(status = 2), language__name = 'English').values('tutorial_detail__foss__foss').order_by('tutorial_detail__foss__foss').values_list('tutorial_detail__foss__foss', 'tutorial_detail__foss__foss').distinct()), widget=forms.Select(attrs = {}), required = True, error_messages = {'required':'State field is required.'})
def __init__(self, *args, **kwargs):
category = kwargs.pop('category', None)
super(NewQuestionForm, self).__init__(*args, **kwargs)
- self.fields['category'] = forms.CharField(widget=forms.Select(choices=categories))
- self.fields['category'].initial = category
-
tutorial_choices = (
- ("None", "Select a Tutorial"),
+ ("", "Select a Tutorial"),
)
- if (category, category) in categories:
- tutorials = TutorialDetails.objects.using('spoken').filter(foss_category=category)
+ if not category and args and 'category' in args[0] and args[0]['category']:
+ category = args[0]['category']
+ if FossCategory.objects.filter(foss=category).exists():
+ self.fields['category'].initial = category
+ tutorials = TutorialDetails.objects.using('spoken').filter(foss__foss=category)
for tutorial in tutorials:
- tutorial_choices += ((tutorial.tutorial_name, tutorial.tutorial_name),)
+ tutorial_choices += ((tutorial.tutorial, tutorial.tutorial),)
self.fields['tutorial'] = forms.CharField(widget=forms.Select(choices=tutorial_choices))
else:
self.fields['tutorial'] = forms.CharField(widget=forms.Select(choices=tutorial_choices))