From 30d80e37ee5604196f465c2b2c73b1d1a4f11f79 Mon Sep 17 00:00:00 2001 From: Sanmugasundaram K Date: Thu, 7 May 2015 15:24:25 +0530 Subject: question delete, hide, show feature --- forums/settings.py | 2 +- spoken_auth/models.py | 14 +++++ static/website/css/main.css | 13 ++++- static/website/js/thread-user.js | 45 ++++++++++++++++ static/website/templates/base.html | 9 ++++ static/website/templates/get-question.html | 35 +++++++++++-- static/website/templates/search.html | 4 +- website/context_processors.py | 6 +-- website/forms.py | 3 ++ website/models.py | 1 + website/templatetags/count_tags.py | 4 +- website/templatetags/notify.py | 2 +- website/templatetags/permission_tags.py | 8 ++- website/urls.py | 3 ++ website/views.py | 83 ++++++++++++++++++++++-------- 15 files changed, 195 insertions(+), 37 deletions(-) diff --git a/forums/settings.py b/forums/settings.py index 7b758e0..774617a 100644 --- a/forums/settings.py +++ b/forums/settings.py @@ -196,7 +196,7 @@ AUTHENTICATION_BACKENDS = ( 'spoken_auth.backends.DrupalAuthBackend', ) DATABASE_ROUTERS = ['spoken_auth.routers.DrupalAuthRouter'] TEMPLATE_CONTEXT_PROCESSORS += ( 'django.core.context_processors.request', - 'website.context_processors.admin_processor', + #'website.context_processors.admin_processor', ) COMPRESS_ROOT = PROJECT_DIR + "/static/" diff --git a/spoken_auth/models.py b/spoken_auth/models.py index c2fbb6b..676aab7 100644 --- a/spoken_auth/models.py +++ b/spoken_auth/models.py @@ -5,15 +5,29 @@ from django.contrib.auth.models import ( ) #from drupal_auth.managers import DrupalUserManager +class Group(models.Model): + id = models.IntegerField(primary_key=True) + name = models.CharField(max_length=100L, unique=True) + class Meta: + db_table = 'auth_group' + class Users(AbstractBaseUser): id = models.IntegerField(primary_key=True) username = models.CharField(max_length=100L, unique=True) email = models.CharField(max_length=100L, unique=True) is_active = models.BooleanField() + groups = models.ManyToManyField(Group, related_name="user_groups", through='UserGroups') USERNAME_FIELD = 'username' class Meta: db_table = 'auth_user' +class UserGroups(models.Model): + id = models.IntegerField(primary_key=True) + user = models.ForeignKey(Users) + group = models.ForeignKey(Group) + class Meta: + db_table = 'auth_user_groups' + class FossCategory(models.Model): foss = models.CharField(unique=True, max_length = 255) description = models.TextField() diff --git a/static/website/css/main.css b/static/website/css/main.css index 5587da7..054f4d2 100644 --- a/static/website/css/main.css +++ b/static/website/css/main.css @@ -194,7 +194,7 @@ table .title a { .hideme { display: none; } -.saving, .saved { +.saving, .saved, .deleted, .hide-qmsg { position: fixed; z-index: 2000; left: 45%; @@ -215,6 +215,17 @@ table .title a { .saved { background: lightgreen; } +.deleted, .hide-qmsg{ + background: #5bc0de; + color: white; +} +.question-midify{ + overflow: hidden; +} +.question-midify .delete-question, .question-midify .edit, .question-midify .save, .question-midify .hide-question{ + float: left; + margin: 0 3px; +} #content .answer { position: relative; border-bottom: 1px solid #f5f5f5; diff --git a/static/website/js/thread-user.js b/static/website/js/thread-user.js index 1c43342..32e7fae 100644 --- a/static/website/js/thread-user.js +++ b/static/website/js/thread-user.js @@ -14,6 +14,8 @@ $(document).ready(function() { */ $saving = $(".saving"); $saved= $(".saved"); + $deleted= $(".deleted"); + $hide_qmsg= $(".hide-qmsg"); $question = $(".question"); $question_modify = $(".question .modify"); $question_edit = $(".question .modify .edit"); @@ -305,4 +307,47 @@ $(document).ready(function() { $form.submit(); e.preventDefault; }); + /* delete */ + $('.delete-question').on('click', function(e){ + question_id = parseInt($('.delete-question').data("qid")); + $('#confirm-delete').modal({ backdrop: 'static', keyboard: false }) + .one('click', '#delete', function() { + $.ajax({ + url: "/ajax-delete-question/", + type: "POST", + data: { + question_id: question_id, + }, + success: function(data) { + $deleted.hide(); + $deleted.show(); + $deleted.fadeOut(10000); + window.location = '/'; + } + }); + }); + }); + + /* hide */ + $('.hide-question').on('click', function(e){ + question_id = parseInt($('.hide-question').data("qid")); + status = parseInt($('.hide-question').data("status")); + $('#confirm-hide').modal({ backdrop: 'static', keyboard: false }) + .one('click', '#chide', function() { + $.ajax({ + url: "/ajax-hide-question/", + type: "POST", + data: { + question_id: question_id, + status : status, + }, + success: function(data) { + $hide_qmsg.hide(); + $hide_qmsg.show(); + $hide_qmsg.fadeOut(10000); + window.location.reload(); + } + }); + }); + }); }); diff --git a/static/website/templates/base.html b/static/website/templates/base.html index 86ca41a..506cf24 100644 --- a/static/website/templates/base.html +++ b/static/website/templates/base.html @@ -1,5 +1,6 @@ {% load compress %} {% load static %} +{% load permission_tags %}