Commit 9655250f authored by Jonathan Talbot's avatar Jonathan Talbot

homepage-final

parent 1f43cf10
No preview for this file type
from django import forms
from django.forms import ModelForm
from .models import WidgetUser
class IndexCardForm(forms.Form):
name = forms.CharField(label='Full Name', max_length=100)
section = forms.CharField(label='CSCI40 Section', max_length=5)
age = forms.IntegerField(label='Current Age')
\ No newline at end of file
class WidgetUserForm(ModelForm):
class Meta:
model = WidgetUser
fields = ['last_name', 'first_name', 'middle_name', 'id_num', 'email', 'department'] # Selected fields for the form
\ No newline at end of file
......@@ -12,5 +12,7 @@
<p>{{user.email}}</p>
<p>{{user.department.dept_name}}</p>
<p>{{user.department.home_unit}}</p>
<hr>
<a href="{% url 'widget_user-list' %}">Back to Homepage</a>
</body>
</html>
\ No newline at end of file
......@@ -8,5 +8,13 @@
</head>
<body>
<h1>Add Widget User</h1>
<hr>
<form action="{% url 'widget_user-add' %}" method="POST">
{% csrf_token %}
{{ form.as_p }}
<input type="submit" value="Save WidgetUser">
</form>
<hr>
<a href="{% url 'widget_user-list' %}">Back to Homepage</a>
</body>
</html>
\ No newline at end of file
......@@ -8,10 +8,18 @@
</head>
<body>
<h1>Welcome to Widget!</h1>
<hr>
<p>Widget Users:</p>
{% if object_list %}
<ul>
{% for user in object_list %}
<a href="{{ user.get_absolute_url }}"> {{ user.last_name }}, {{user.first_name}} {{user.middle_name}} </a> <br>
<li><a href="{{ user.get_absolute_url }}"> {{ user.last_name }}, {{user.first_name}} {{user.middle_name}} </a></li><br>
{% endfor %}
<a href="/users/add">test</a>
</ul>
{% else %}
<p>There are no widget users.</p>
{% endif %}
<hr>
<a href="{% url 'widget_user-add' %}"><button>Add Widget User</button></a>
</body>
</html>
\ No newline at end of file
from django.urls import path
from .views import homepage, UserDetailView, UserListView
from .views import UserDetailView, UserListView, addWidgetUser
urlpatterns = [
path('', UserListView.as_view(), name='widget_user-list'),
path('<int:pk>/details', UserDetailView, name='widget_user-detail'),
path('add/', addWidgetUser, name='widget_user-add'),
]
\ No newline at end of file
from django.shortcuts import render, get_object_or_404
from django.shortcuts import render, get_object_or_404, redirect
from django.views import View
from django.views.generic.detail import DetailView
from django.views.generic.list import ListView
from .models import WidgetUser, Department
from .forms import WidgetUserForm
class homepage(View):
def get(self, request):
widget_users = WidgetUser.objects.all()
context = {
'widget_users': widget_users,
}
return render(request, 'homepage/homepage.html', context)
def UserDetailView(request, pk):
user = get_object_or_404(WidgetUser, pk=pk)
......@@ -19,4 +13,18 @@ def UserDetailView(request, pk):
})
class UserListView(ListView):
model = WidgetUser
\ No newline at end of file
queryset = WidgetUser.objects.order_by('last_name') # Orders by last name alphabetically
context_object_name = "post_list"
template_name = "post_list.html"
def addWidgetUser(request):
form = WidgetUserForm()
if request.method == 'POST':
form = WidgetUserForm(request.POST)
if form.is_valid():
new_widgetuser = form.save() # Creates new widget user
return redirect('widget_user-detail', pk=new_widgetuser.pk) # Redirects to detailed view of new widget user
else:
form = WidgetUserForm()
context = {'form':form}
return render(request,'homepage/widgetuser_form.html', context)
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment