Skip to content

Commit 92192ed

Browse files
committed
add vault view, URL pattern, and fix navigation template syntax
1 parent 896847f commit 92192ed

3 files changed

Lines changed: 47 additions & 2 deletions

File tree

home/templates/includes/navigation.html

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -223,6 +223,7 @@
223223
<li class="nav-item">
224224
<a href="{% url 'vault' %}" class="nav-link">Vault</a>
225225
</li>
226+
{% endif %}
226227

227228
<li class="nav-item dropdown">
228229
<a href="#" class="nav-link" id="frontPagesDropdown" aria-expanded="false"

home/urls.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -191,6 +191,7 @@
191191
path('appattack/secure-code-review-form/', views.secure_code_review_form_view, name='secure_code_review_form'),
192192

193193
path('account/delete/', delete_account, name='delete-account'),
194+
path('vault/', views.vault_view, name='vault'),
194195

195196
path("health", health_check, name="health-check"),
196197

home/views.py

Lines changed: 45 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@
3333
from .models import Report
3434

3535

36-
from .models import Article, Student, Project, Contact, Smishingdetection_join_us, Projects_join_us, Webpage, Profile, User, Course, Skill, Experience, Job, JobAlert, UserBlogPage #Feedback
36+
from .models import Article, Student, Project, Contact, Smishingdetection_join_us, Projects_join_us, Webpage, Profile, User, Course, Skill, Experience, Job, JobAlert, UserBlogPage, VaultDocument #Feedback
3737

3838

3939
from django.contrib.auth import get_user_model
@@ -47,7 +47,7 @@
4747
from django.urls import reverse_lazy
4848
# from Website.settings import EMAIL_HOST_USER
4949
import random
50-
from .forms import UserUpdateForm, ProfileUpdateForm, ExperienceForm, JobApplicationForm, UserBlogPageForm, ChallengeForm
50+
from .forms import UserUpdateForm, ProfileUpdateForm, ExperienceForm, JobApplicationForm, UserBlogPageForm, ChallengeForm, VaultUploadForm
5151

5252
from .forms import CaptchaForm
5353

@@ -2655,3 +2655,46 @@ def tip_today(request):
26552655

26562656
return JsonResponse({"tip": texts[state.last_index]})
26572657

2658+
2659+
@login_required
2660+
def vault_view(request):
2661+
"""View for the document vault"""
2662+
documents = VaultDocument.objects.all()
2663+
2664+
# Handle filtering
2665+
type_filter = request.GET.get('type', '')
2666+
if type_filter:
2667+
if type_filter == 'pdf':
2668+
documents = documents.filter(content_type__icontains='pdf')
2669+
elif type_filter == 'word':
2670+
documents = documents.filter(content_type__icontains='word')
2671+
elif type_filter == 'excel':
2672+
documents = documents.filter(content_type__icontains='excel')
2673+
elif type_filter == 'powerpoint':
2674+
documents = documents.filter(content_type__icontains='powerpoint')
2675+
elif type_filter == 'image':
2676+
documents = documents.filter(content_type__icontains='image')
2677+
2678+
# Handle file upload
2679+
if request.method == 'POST':
2680+
form = VaultUploadForm(request.POST, request.FILES)
2681+
if form.is_valid():
2682+
vault_doc = form.save(commit=False)
2683+
vault_doc.uploaded_by = request.user
2684+
vault_doc.original_name = request.FILES['file'].name
2685+
vault_doc.content_type = request.FILES['file'].content_type
2686+
vault_doc.size_bytes = request.FILES['file'].size
2687+
vault_doc.save()
2688+
form.save_m2m() # Save many-to-many relationships
2689+
messages.success(request, 'Document uploaded successfully!')
2690+
return redirect('vault')
2691+
else:
2692+
form = VaultUploadForm()
2693+
2694+
context = {
2695+
'documents': documents,
2696+
'form': form,
2697+
'type_filter': type_filter,
2698+
}
2699+
return render(request, 'pages/vault.html', context)
2700+

0 commit comments

Comments
 (0)