diff --git a/website/recursion_website/forms.py b/website/recursion_website/forms.py index 8c60c96d..86bc5edb 100644 --- a/website/recursion_website/forms.py +++ b/website/recursion_website/forms.py @@ -1,7 +1,7 @@ from django import forms from .models import * from django.contrib.auth.models import User - +from . import models class Questionform(forms.ModelForm): title = models.CharField(max_length=100) @@ -38,4 +38,10 @@ class Commentform(forms.ModelForm): class Meta: model = Comments - fields = ('body',) \ No newline at end of file + fields = ('body',) + +class CreateMember(forms.ModelForm): + class Meta: + model = models.Members + fields=['name','year','position','branch','contact_details','experience'] + diff --git a/website/recursion_website/models.py b/website/recursion_website/models.py index 7e91f633..7d46a7fc 100644 --- a/website/recursion_website/models.py +++ b/website/recursion_website/models.py @@ -9,6 +9,20 @@ from django.contrib.auth.models import User # Done + +class Members(models.Model): + + name = models.CharField(max_length=100) + year = models.CharField(max_length=20) + position = models.CharField(max_length=100) + branch = models.CharField(max_length=100) + contact_details = models.CharField(max_length=200) + experience = models.CharField(max_length=500) + class Meta: + managed = True + db_table = 'members' + +#Done class Questions(models.Model): title = models.CharField(max_length=100) description = models.TextField(blank=True, null=True) diff --git a/website/recursion_website/templates/base.html b/website/recursion_website/templates/base.html index 23c19343..ba781670 100644 --- a/website/recursion_website/templates/base.html +++ b/website/recursion_website/templates/base.html @@ -21,10 +21,5 @@ - + -{% block content %} -{% endblock %} - - - \ No newline at end of file diff --git a/website/recursion_website/templates/recursion_website/members/members_create.html b/website/recursion_website/templates/recursion_website/members/members_create.html new file mode 100644 index 00000000..68c55395 --- /dev/null +++ b/website/recursion_website/templates/recursion_website/members/members_create.html @@ -0,0 +1,13 @@ +{% extends 'base.html' %} + +{% block content %} +
+

Register a New Member

+
+ {% csrf_token %} + {{form.as_p}} + +
+
+ +{% endblock %} \ No newline at end of file diff --git a/website/recursion_website/templates/recursion_website/members/members_edit.html b/website/recursion_website/templates/recursion_website/members/members_edit.html new file mode 100644 index 00000000..a0d55bf6 --- /dev/null +++ b/website/recursion_website/templates/recursion_website/members/members_edit.html @@ -0,0 +1,13 @@ +{% extends 'base.html' %} + +{% block content %} +
+

Edit Member

+
+ {% csrf_token %} + {{form.as_p}} + +
+
+ +{% endblock %} \ No newline at end of file diff --git a/website/recursion_website/templates/recursion_website/members/members_list.html b/website/recursion_website/templates/recursion_website/members/members_list.html new file mode 100644 index 00000000..a085340a --- /dev/null +++ b/website/recursion_website/templates/recursion_website/members/members_list.html @@ -0,0 +1,18 @@ +{% extends 'base.html' %} + +{% block content %} +
+

Members:

+ {% for member in members %} +

Name : {{ member.name }}

+

Year : {{ member.year }}

+

Position : {{ member.position }}

+

Branch : {{ member.branch }}

+

Contact Details : {{ member.contact_details }}

+

Experience : {{ member.experience }}

+ Edit + Delete + {% endfor %} +
+ +{% endblock %} \ No newline at end of file diff --git a/website/recursion_website/urls.py b/website/recursion_website/urls.py index 36d70b94..a6d0f0be 100644 --- a/website/recursion_website/urls.py +++ b/website/recursion_website/urls.py @@ -2,17 +2,24 @@ from .views import * from django.conf.urls import include,url from django.conf import settings +from django.contrib import admin +from . import views +app_name = 'recursion_website' + urlpatterns = [ path('add', add_question, name='add_question'), path('', list_questions ,name='list_questions'), path('detail//', detail_questions, name='detail_questions'), path('update//', update_questions, name='update_question'), - path('question//answer',add_answer,name='add_answer'), path('answer/',update_answer,name='update_answer'), path('answer//vote', voting, name='voting'), path('follow//', edit_following, name='edit_following'), path('comment//', add_comment, name='add_comment'), path('editcomment//', update_comment, name='update_comment'), + path('list/', views.member_list, name="list"), + path('create/',views.member_create, name="create"), + path('/edit/',views.member_edit, name="edit"), + path('/delete/',views.member_delete, name="delete") ] diff --git a/website/recursion_website/views.py b/website/recursion_website/views.py index 89b98120..a901c23e 100644 --- a/website/recursion_website/views.py +++ b/website/recursion_website/views.py @@ -1,4 +1,3 @@ - from django.contrib.auth.decorators import login_required from django.shortcuts import render from django.shortcuts import render, redirect,get_object_or_404, get_list_or_404 @@ -15,7 +14,9 @@ from django.conf import settings from django.forms import modelformset_factory from itertools import chain - +from recursion_website.models import Members +from django.contrib.auth.models import User +from . import forms @login_required def home(request): return render(request, 'home.html') @@ -250,4 +251,38 @@ def voting(request, id): upvote = Upvotes.objects.create(answer=answer, user=user) upvote.save() return HttpResponseRedirect(reverse('detail_questions', args=(question.id,))) +def member_list(request): + + members = Members.objects.all().order_by('id') + args={'form' : forms.CreateMember , 'members' : members} + return render(request, 'recursion_website/members/members_list.html' , args) +def member_create(request): + if request.method == "POST": + form=forms.CreateMember(request.POST) + if form.is_valid(): + #save member to database + new_member=form.save(commit=False) + new_member.save() + return redirect('recursion_website:list') + + else: + form=forms.CreateMember() + return render(request,'recursion_website/members/members_create.html',{'form':form}) + +def member_edit(request, id=None): + member=get_object_or_404(Members,id=id) + form = forms.CreateMember(request.POST or None, instance=member) + if request.method == 'POST': + if form.is_valid(): + form.save() + return redirect('recursion_website:list') + + else: + return render(request, 'recursion_website/members/members_edit.html',{'form':form}) + +def member_delete(request, id=None): + member=get_object_or_404(Members,id=id) + if request.method == 'GET': + member.delete() + return redirect('recursion_website:list') diff --git a/website/website/urls.py b/website/website/urls.py index de576a92..d7eeaa05 100644 --- a/website/website/urls.py +++ b/website/website/urls.py @@ -17,13 +17,19 @@ from django.contrib.auth import views as auth_views from django.urls import path,include from recursion_website import views +from django.urls import path,include +app_name='website' urlpatterns = [ - path('admin/', admin.site.urls), + path('admin/', admin.site.urls,name="admin"), path('', views.home, name='home'), path('login/', auth_views.LoginView.as_view(), name='login'), path('logout/', auth_views.LogoutView.as_view(), name='logout'), path('oauth/', include('social_django.urls', namespace='social')), - path('forum/',include('recursion_website.urls')) - + path('forum/',include('recursion_website.urls')), + path('members/',include('recursion_website.urls')) ] + + + +