From 99bbf8ec16fca5eeec9d0ddad5f0a5ae169e4218 Mon Sep 17 00:00:00 2001 From: Jayaram Pai Date: Wed, 23 Apr 2014 17:18:27 +0530 Subject: changed slick in index page changed login:next_url modified the forms.py for initial value --- forums/settings.py | 4 +- forums/views.py | 7 ++- forums/wsgi.py | 4 +- static/forums/templates/user-login.html | 4 +- static/website/css/main.css | 48 +++++++++++++-------- static/website/templates/filter.html | 3 ++ static/website/templates/index.html | 61 ++++++++++----------------- static/website/templates/latest_question.html | 11 +++++ static/website/templates/new-question.html | 8 +++- website/forms.py | 22 ++++++++-- website/models.py | 3 ++ website/templatetags/notify.py | 13 ++++++ website/views.py | 14 +++--- 13 files changed, 129 insertions(+), 73 deletions(-) create mode 100644 static/website/templates/latest_question.html diff --git a/forums/settings.py b/forums/settings.py index be17520..c2811f4 100644 --- a/forums/settings.py +++ b/forums/settings.py @@ -188,5 +188,5 @@ DATABASE_ROUTERS = ['drupal_auth.routers.DrupalAuthRouter'] TEMPLATE_CONTEXT_PROCESSORS += ('website.context_processors.admin_processor', ) COMPRESS_ROOT = PROJECT_DIR + "/static/" -COMPRESS_ENABLED = True -HTML_MINIFY = True +COMPRESS_ENABLED = False +HTML_MINIFY = False diff --git a/forums/views.py b/forums/views.py index 6890d61..a38d6b7 100644 --- a/forums/views.py +++ b/forums/views.py @@ -14,6 +14,9 @@ def user_login(request): if user is not None: if user.is_active: login(request, user) + if 'next' in request.POST: + next_url = request.POST.get('next') + return HttpResponseRedirect(next_url) return HttpResponseRedirect('/') else: return HttpResponse('you are blocked') @@ -21,8 +24,10 @@ def user_login(request): return HttpResponse('Invalid username or password') else: form = UserLoginForm() + next_url = request.GET.get('next') context = { - 'form': form + 'form': form, + 'next': next_url } context.update(csrf(request)) return render_to_response('forums/templates/user-login.html', context) diff --git a/forums/wsgi.py b/forums/wsgi.py index 728eed4..3901802 100644 --- a/forums/wsgi.py +++ b/forums/wsgi.py @@ -24,8 +24,8 @@ sys.path.append('/Sites/venv/forums/') # os.environ["DJANGO_SETTINGS_MODULE"] = "forums.settings" os.environ["DJANGO_SETTINGS_MODULE"] = "forums.settings" -activate_this = '/Sites/venv/bin/activate_this.py' -execfile(activate_this, dict(__file__=activate_this)) +# activate_this = '/Sites/venv/bin/activate_this.py' +# execfile(activate_this, dict(__file__=activate_this)) # This application object is used by any WSGI server configured to use this # file. This includes Django's development server, if the WSGI_APPLICATION diff --git a/static/forums/templates/user-login.html b/static/forums/templates/user-login.html index a1951fe..21c4551 100644 --- a/static/forums/templates/user-login.html +++ b/static/forums/templates/user-login.html @@ -16,7 +16,9 @@ {% render_field form.password class+="form-control" %} - + {% if next %} + + {% endif %} {% endwith %} diff --git a/static/website/css/main.css b/static/website/css/main.css index ae785bc..4726635 100644 --- a/static/website/css/main.css +++ b/static/website/css/main.css @@ -12,23 +12,6 @@ hr { .navbar-default { margin-bottom: 0; } -.carousel, .slick-list { - height: 100px; - margin-right: -2px; -} -.carousel .item { - border: 1px solid #333333; - position: relative; -} -.carousel .thumb { - text-align: center; - height: 75px; -} -.carousel .descp { - position: absolute; - bottom: 0; - width: 100%; -} #filter-container { background: #f5f5f5; padding: 15px; @@ -340,3 +323,34 @@ table .title a { .slick-prev:after { color: #a26dc8; } +.carousel, .slick-list { + height: 245px; + margin-right: -2px; +} +.carousel .thumbnail { + width: 97%; + height: 245px; + border: 1px solid #cccccc; +} +.carousel .thumbnail img { + height: 100px; +} +.carousel .caption .category { + display: block; + width: 100%; + white-space: nowrap; + overflow: hidden; + text-align: center; +} +.carousel .caption .latest { + display: block; + padding: 5px 0 5px 0; + border-top: 1px solid #cccccc; + width: 100%; + white-space: nowrap; + overflow: hidden; + text-align: center; +} +.carousel .caption .btn { + margin-top: 7px; +} diff --git a/static/website/templates/filter.html b/static/website/templates/filter.html index dada403..7496c0c 100644 --- a/static/website/templates/filter.html +++ b/static/website/templates/filter.html @@ -70,7 +70,10 @@ > {{ second_range }} sec {% endif %} + Ask a new question. +
+
diff --git a/static/website/templates/index.html b/static/website/templates/index.html index 95c8500..991c777 100644 --- a/static/website/templates/index.html +++ b/static/website/templates/index.html @@ -1,45 +1,33 @@ {% extends 'website/templates/base.html' %} {% load static %} {% load count_tags %} +{% load notify %} {% block content %}
-

Filter questions . . .

-
-
- -
-
- -
-
+ View all previous questions.
@@ -57,15 +45,10 @@
-
+
Recent questions - - - View all questions - -
FOSS
@@ -157,9 +140,9 @@ dots: false, touchMove: false, draggable: false, - slidesToShow: 8, - slidesToScroll: 3, - speed: 500, + slidesToShow: 4, + slidesToScroll: 1, + speed: 1000, autoplay: true, autoplaySpeed: 1000, }); diff --git a/static/website/templates/latest_question.html b/static/website/templates/latest_question.html new file mode 100644 index 0000000..5279f19 --- /dev/null +++ b/static/website/templates/latest_question.html @@ -0,0 +1,11 @@ +{% if question %} + + {{ question.title }} + + View previous questions +{% else %} + + Be the first to ask question. + + View previous questions +{% endif %} diff --git a/static/website/templates/new-question.html b/static/website/templates/new-question.html index d9576bb..16c6021 100644 --- a/static/website/templates/new-question.html +++ b/static/website/templates/new-question.html @@ -11,7 +11,7 @@ {% with WIDGET_ERROR_CLASS='field_error' %}

- Please enter the tutorial details. + Please enter the tutorial details. {{ category }}

@@ -19,7 +19,11 @@ {% render_field form.category class+="form-control"%}
- {% render_field form.tutorial class+="form-control" disabled="disabled" %} + {% if category %} + {% render_field form.tutorial class+="form-control" %} + {% else %} + {% render_field form.tutorial class+="form-control" disabled="disabled" %} + {% endif %}
{% render_field form.minute_range class+="form-control" disabled="disabled" %} diff --git a/website/forms.py b/website/forms.py index f1e29be..7d60ffa 100644 --- a/website/forms.py +++ b/website/forms.py @@ -1,6 +1,6 @@ from django import forms -from website.models import Question +from website.models import * categories = ( ("None", "Select a Category"), @@ -64,8 +64,24 @@ seconds= ( ) class NewQuestionForm(forms.Form): - category = forms.CharField(widget=forms.Select(choices=categories)) - tutorial = forms.CharField(widget=forms.Select(choices=tutorials)) + #fix dirty code + def __init__(self, *args, **kwargs): + category = kwargs.pop('category') + 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"), + ) + if (category, category) in categories: + tutorials = TutorialDetails.objects.using('spoken').filter(foss_category=category) + for tutorial in tutorials: + tutorial_choices += ((tutorial.tutorial_name, tutorial.tutorial_name),) + self.fields['tutorial'] = forms.CharField(widget=forms.Select(choices=tutorial_choices)) + else: + self.fields['tutorial'] = forms.CharField(widget=forms.Select(choices=tutorial_choices)) + minute_range = forms.CharField(widget=forms.Select(choices=minutes)) second_range = forms.CharField(widget=forms.Select(choices=seconds)) title = forms.CharField(max_length=200) diff --git a/website/models.py b/website/models.py index c280d2d..7a845c5 100644 --- a/website/models.py +++ b/website/models.py @@ -22,6 +22,9 @@ class Question(models.Model): user = User.objects.get(id=self.uid) return user.username + class Meta: + get_latest_by = "date_created" + class QuestionVote(models.Model): uid = models.IntegerField() question = models.ForeignKey(Question) diff --git a/website/templatetags/notify.py b/website/templatetags/notify.py index 44465ea..c39e658 100644 --- a/website/templatetags/notify.py +++ b/website/templatetags/notify.py @@ -20,3 +20,16 @@ def notification_count(user_id): count = Notification.objects.filter(uid=user_id).count() return count register.simple_tag(notification_count) + +# retriving the latest post of a category +def latest_question(category): + question = None + try: + question = Question.objects.filter(category=category).order_by('-date_created')[0] + except: + pass + context = { + 'question': question + } + return context +register.inclusion_tag('website/templates/latest_question.html')(latest_question) diff --git a/website/views.py b/website/views.py index cd1665b..925fc2c 100644 --- a/website/views.py +++ b/website/views.py @@ -5,7 +5,7 @@ from django.shortcuts import render, get_object_or_404 from django.core.context_processors import csrf from django.views.decorators.csrf import csrf_exempt from django.contrib.auth.decorators import login_required -from django.db.models import Q +from django.db.models import Q, Max from django.core.mail import EmailMultiAlternatives from django.core.paginator import Paginator, EmptyPage, PageNotAnInteger from django.contrib.auth import get_user_model @@ -217,6 +217,7 @@ def filter(request, category=None, tutorial=None, minute_range=None, second_ran @login_required def new_question(request): + context = {} if request.method == 'POST': form = NewQuestionForm(request.POST) if form.is_valid(): @@ -257,11 +258,12 @@ def new_question(request): return HttpResponseRedirect('/') else: - form = NewQuestionForm() - - context = { - 'form': form - } + #fix dirty code + category = request.GET.get('category') + form = NewQuestionForm(category=category) + context['category'] = category + + context['form'] = form context.update(csrf(request)) return render(request, 'website/templates/new-question.html', context) -- cgit