BES-6 Delete note
This commit is contained in:
parent
e78332631c
commit
54c5370b5d
@ -39,17 +39,17 @@ def save_studentprofile(sender, instance, **kwargs):
|
|||||||
|
|
||||||
|
|
||||||
class Subject(models.Model):
|
class Subject(models.Model):
|
||||||
name = models.CharField(max_length=30)
|
name = models.CharField(max_length=40)
|
||||||
student = models.ForeignKey(StudentProfile, on_delete=models.CASCADE)
|
student = models.ForeignKey(StudentProfile, on_delete=models.CASCADE)
|
||||||
|
|
||||||
class Topic(models.Model):
|
class Topic(models.Model):
|
||||||
name = models.CharField(max_length=30)
|
name = models.CharField(max_length=40)
|
||||||
subject = models.ForeignKey(Subject, on_delete=models.CASCADE)
|
subject = models.ForeignKey(Subject, on_delete=models.CASCADE)
|
||||||
add_date = models.DateField()
|
add_date = models.DateField()
|
||||||
|
|
||||||
|
|
||||||
class Note(models.Model):
|
class Note(models.Model):
|
||||||
name = models.CharField(max_length=30)
|
name = models.CharField(max_length=60)
|
||||||
content = tinymce_models.HTMLField("Content")
|
content = tinymce_models.HTMLField("Content")
|
||||||
text = models.TextField(blank=False)
|
text = models.TextField(blank=False)
|
||||||
topic = models.ForeignKey(Topic, on_delete=models.SET_NULL, null=True)
|
topic = models.ForeignKey(Topic, on_delete=models.SET_NULL, null=True)
|
||||||
|
@ -11,7 +11,10 @@
|
|||||||
</div>
|
</div>
|
||||||
{% if note.user.user.id == user.id %}
|
{% if note.user.user.id == user.id %}
|
||||||
<div class="container">
|
<div class="container">
|
||||||
<div class="row d-flex justify-content-center"><button id="edit_note" class="btn-success mr-1">Edytuj</button> <button id="delete_note" class="btn-danger">Usuń</button></div>
|
<div class="row d-flex justify-content-center"><button id="edit_note" class="btn-success mr-1">Edytuj</button>
|
||||||
|
<form action="{% url 'delete_note' note_id=note.id%}">
|
||||||
|
<button type="submit" id="delete_note" class="btn-danger">Usuń</button></div>
|
||||||
|
</form>
|
||||||
</div>
|
</div>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
|
@ -14,5 +14,6 @@ urlpatterns = [
|
|||||||
path('addnote/', views.add, name="add"),
|
path('addnote/', views.add, name="add"),
|
||||||
path('notes/', views.notes_all, name="notes"),
|
path('notes/', views.notes_all, name="notes"),
|
||||||
path('notes/<subject_id>', views.notes_name, name="notes_id"),
|
path('notes/<subject_id>', 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/<note_id>', views.delete_note, name="delete_note")
|
||||||
]
|
]
|
||||||
|
@ -124,3 +124,27 @@ def create_note(request):
|
|||||||
note.save()
|
note.save()
|
||||||
url = reverse('subject')
|
url = reverse('subject')
|
||||||
return HttpResponseRedirect(url)
|
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()
|
||||||
|
BIN
db.sqlite3
BIN
db.sqlite3
Binary file not shown.
Loading…
Reference in New Issue
Block a user