X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=portal%2Fviews.py;h=efa58d4f64672c55ad6d616810df60c3644b86f8;hb=7b1bc5bd58de4f06a193f3dd344df7b342504cbf;hp=09741d208ed0d5afe31f8f7c54a5a3bbd8f8805e;hpb=ad3cd0d067dc31c300ac45c3526720b03b7dc82a;p=myslice.git diff --git a/portal/views.py b/portal/views.py index 09741d20..efa58d4f 100644 --- a/portal/views.py +++ b/portal/views.py @@ -5,6 +5,7 @@ # # Authors: # Jordan Augé +# Mohammed Yasin Rahman # Copyright 2013, UPMC Sorbonne Universités / LIP6 # # This program is free software; you can redistribute it and/or modify it under @@ -20,15 +21,70 @@ # this program; see the file COPYING. If not, write to the Free Software # Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. -from django.conf import settings -from django.contrib.sites.models import RequestSite -from django.contrib.sites.models import Site +from django.conf import settings +from django.contrib.sites.models import Site, RequestSite +from django.contrib import messages +from django.views.generic import View +from django.views.generic.base import TemplateView +from django.shortcuts import render +from plugins.lists.simplelist import SimpleList +from portal import signals +from portal.forms import UserRegisterForm, SliceRequestForm, ContactForm +from portal.util import RegistrationView, ActivationView +from portal.models import PendingUser, PendingSlice +from manifold.core.query import Query +from unfold.page import Page +from myslice.viewutils import topmenu_items, the_user +from django.http import HttpResponseRedirect -from django.shortcuts import render -from portal.forms import UserRegisterForm, SliceRequestForm -from portal.util import RegistrationView, ActivationView -from portal.models import PendingUser, PendingSlice -from portal import signals +class DashboardView(TemplateView): + template_name = "dashboard.html" + + def get_context_data(self, **kwargs): + user_hrn = 'ple.upmc.jordan_auge' + + #messages.info(self.request, 'You have logged in') + page = Page(self.request) + + # Slow... + #slice_query = Query().get('slice').filter_by('user.user_hrn', 'contains', user_hrn).select('slice_hrn') + slice_query = Query().get('user').filter_by('user_hrn', '==', user_hrn).select('slice.slice_hrn') + auth_query = Query().get('network').select('network_hrn') + page.enqueue_query(slice_query) + page.enqueue_query(auth_query) + + page.expose_queries() + + slicelist = SimpleList( + title = None, + page = page, + key = 'slice.slice_hrn', + query = slice_query, + ) + + authlist = SimpleList( + title = None, + page = page, + key = 'network_hrn', + query = auth_query, + ) + + context = super(DashboardView, self).get_context_data(**kwargs) + context['person'] = self.request.user + context['networks'] = authlist.render(self.request) + context['slices'] = slicelist.render(self.request) + + # XXX This is repeated in all pages + # more general variables expected in the template + context['title'] = 'Test view that combines various plugins' + # the menu items on the top + context['topmenu_items'] = topmenu_items('dashboard', self.request) + # so we can sho who is logged + context['username'] = the_user(self.request) + + context.update(page.prelude_env()) + + return context class UserRegisterView(RegistrationView): """ @@ -97,8 +153,10 @@ class UserRegisterView(RegistrationView): """ first_name = cleaned_data['first_name'] last_name = cleaned_data['last_name'] + affiliation= cleaned_data['affiliation'] email = cleaned_data['email'] password = cleaned_data['password1'] + #password2 = cleaned_data['password2'] keypair = cleaned_data['keypair'] @@ -364,3 +422,33 @@ class UserValidateView(ActivationView): # DEPRECATED # p << wizard.render(request) # in portal page if possible # DEPRECATED # # DEPRECATED # return p.render() + + +# view for contact form +def contact(request): + if request.method == 'POST': # If the form has been submitted... + form = ContactForm(request.POST) # A form bound to the POST data + if form.is_valid(): # All validation rules pass + # Process the data in form.cleaned_data + first_name = form.cleaned_data['first_name'] + last_name = form.cleaned_data['last_name'] + affiliation = form.cleaned_data['affiliation'] + subject = form.cleaned_data['subject'] + message = form.cleaned_data['message'] + email = form.cleaned_data['email'] + cc_myself = form.cleaned_data['cc_myself'] + + recipients = ['yasin.upmc@gmail.com'] + if cc_myself: + recipients.append(sender) + + from django.core.mail import send_mail + send_mail(subject, message, email, recipients) + return render(request,'contact_sent.html') # Redirect after POST + else: + form = ContactForm() # An unbound form + + return render(request, 'contact.html', { + 'form': form, + }) +