diff --git a/bestnotes/models.py b/bestnotes/models.py index 880ef0e..8c5bba7 100644 --- a/bestnotes/models.py +++ b/bestnotes/models.py @@ -39,17 +39,17 @@ def save_studentprofile(sender, instance, **kwargs): class Subject(models.Model): - name = models.CharField(max_length=30) + name = models.CharField(max_length=40) student = models.ForeignKey(StudentProfile, on_delete=models.CASCADE) class Topic(models.Model): - name = models.CharField(max_length=30) + name = models.CharField(max_length=40) subject = models.ForeignKey(Subject, on_delete=models.CASCADE) add_date = models.DateField() class Note(models.Model): - name = models.CharField(max_length=30) + name = models.CharField(max_length=60) content = tinymce_models.HTMLField("Content") text = models.TextField(blank=False) topic = models.ForeignKey(Topic, on_delete=models.SET_NULL, null=True) diff --git a/bestnotes/templates/note.html b/bestnotes/templates/note.html index 3eb80f0..38b6551 100644 --- a/bestnotes/templates/note.html +++ b/bestnotes/templates/note.html @@ -11,7 +11,10 @@ {% if note.user.user.id == user.id %}
-
+
+
+
+
{% endif %} diff --git a/bestnotes/urls.py b/bestnotes/urls.py index 7718acf..f63da4c 100644 --- a/bestnotes/urls.py +++ b/bestnotes/urls.py @@ -14,5 +14,6 @@ urlpatterns = [ path('addnote/', views.add, name="add"), path('notes/', views.notes_all, name="notes"), path('notes/', views.notes_name, name="notes_id"), - path('create/', views.create_note, name="create_note") + path('create/', views.create_note, name="create_note"), + path('delete_note/', views.delete_note, name="delete_note") ] diff --git a/bestnotes/views.py b/bestnotes/views.py index 40af1c9..436c439 100644 --- a/bestnotes/views.py +++ b/bestnotes/views.py @@ -123,4 +123,28 @@ def create_note(request): add_date=date.today()) note.save() url = reverse('subject') - return HttpResponseRedirect(url) \ No newline at end of file + return HttpResponseRedirect(url) + +def delete_note(request, note_id): + #Get values + note = Note.objects.get(pk=note_id) + student = StudentProfile.objects.get(user=request.user.id) + #Check if student has possibility do delete this note + if note.user.id == student.id: + note.delete() + delete_empty_categories() + #Redirect + url = reverse('subject') + return HttpResponseRedirect(url) + +def delete_empty_categories(): + #Get all topics + topics = Topic.objects.all() + for topic in topics: + if not topic.note_set.all().exists(): + topic.delete() + #Same for subjects + subjects = Subject.objects.all() + for subject in subjects: + if not subject.topic_set.all().exists(): + subject.delete() diff --git a/db.sqlite3 b/db.sqlite3 index 6ff44df..05e3bab 100644 Binary files a/db.sqlite3 and b/db.sqlite3 differ