Merge branch 'jordan' of ssh://git.onelab.eu/git/myslice into jordan
authorJordan Augé <jordan.auge@lip6.fr>
Fri, 2 Aug 2013 08:07:56 +0000 (10:07 +0200)
committerJordan Augé <jordan.auge@lip6.fr>
Fri, 2 Aug 2013 08:07:56 +0000 (10:07 +0200)
portal/models.py
portal/templates/my_account.html [new file with mode: 0644]
portal/urls.py
portal/views.py

index 0dcbc6d..029e3b5 100644 (file)
@@ -223,7 +223,7 @@ class PendingUser(models.Model):
         verbose_name_plural = _('registration profiles')
     
     def __unicode__(self):
-        return u"Registration information for %s" % self.user
+        return u"Registration information for %s" % self.email
 
     def activation_key_expired(self):
         """
diff --git a/portal/templates/my_account.html b/portal/templates/my_account.html
new file mode 100644 (file)
index 0000000..35dfa10
--- /dev/null
@@ -0,0 +1,146 @@
+{% extends "layout-unfold1.html" %}
+
+{% block head %}
+<link rel="stylesheet" type="text/css" href="{{STATIC_URL}}/css/my_account.common.css" />
+<link rel="stylesheet" type="text/css" href="{{STATIC_URL}}/css/my_account.profile.css" />
+<script type="text/javascript" src="{{STATIC_URL}}/js/jquery.validate.js"></script> 
+<script type="text/javascript" src="{{STATIC_URL}}/js/my_account.edit_profile.js"></script>
+<script type="text/javascript" src="{{STATIC_URL}}/js/my_account.register.js"></script>
+{% endblock %}
+
+{% block unfold1_main %}
+
+
+
+<div class='ms-dashboard-panel' id='ms-dashboard-slices' style=" display:block; float:none"  >
+    <div class='ms-dashboard-caption'>
+      <h2>MySlice  Account</h2>
+    </div>
+    <div class='ms-dashboard-content' id='tophat__list__user_hrn'>
+            <div id="main">
+                    <div id="middle">
+                       <form id="editForm"  method="POST" action="acc_process" enctype="multipart/form-data">
+                                               {% csrf_token %}
+                       <table class="profile">          
+                                    <tr class="odd">
+                                            <td colspan="2">
+                                                <div id="info">Personal Details</div>
+                                            </td>
+                                    </tr>
+                                <tr class="even">
+                                            <td class="key">Email</td>
+                                            <td class="value">
+                                                   <span id="emailval" class="value" >{{ person.email }}</span>
+                                                   <img class="logo" src="{{STATIC_URL}}/img/ques_icon.png" onclick="emailAlert()"  title="To change your email please contact the administrator" style="height: 20px; width: 20px; position: absolute; left: 625px; left: 900px; margin-top: -9px;">
+                                            </td>
+                                    </tr>
+                                <tr class="odd">
+                                            <td class="key">Password</td>
+                                            <td class="value"> 
+                                                <button class="edit" type="button" title="Password" name="edit_pass" id="edit_pass">Edit</button>
+                                                    <span id="passval"class="value">******** </span>
+                                                    <span class="hide_this" id="span_pass">
+                                                            <button type="button" class="cancel" title="Cancel" id="cancel_pass_change"> Cancel </button>
+                                                                <div style='display:none;' id="pass_form">
+                                                                    <input type='hidden'  value='' /></div>
+                                                                    <table id="edit_password">
+                                                                            <tr>
+                                                                                    <td>Enter password: </td>
+                                                                                    <td class="field"> 
+                                                                                        <input type="password" name="password" id="password" />
+                                                                                    </td>
+                                                                            </tr>
+                                                                            <tr>
+                                                                                    <td>Confirm password: </td>
+                                                                                    <td class="field"> 
+                                                                                        <input type="password" name="confirmpassword" id="confirmpassword" /> 
+                                                                                        <input type="submit" name="submit_pass" value="Save"/> 
+                                                                                    </td>
+                                                                            </tr>
+                                                                    </table>
+                                                    </span>    
+                                            </td>
+                                </tr>
+                                <tr class="even">
+                                            <td class="key">Full Name</td>
+                                            <td class="value">
+                                                    <span id="nameval" class="value" >Yasin Rahman </span>
+                                                    <span class="hide_this" id="span_name">
+                                                            <button type="button" class="cancel" title="Cancel" id="cancel_name_change"> Cancel </button>
+                                                            
+                                                                <div style='display:none;'><input type='hidden'  name='nameform'  /></div>
+                                                                    <input id="fname" type="text" name="fname" class="required"  maxlength="200" value="" />
+                                                                    <input id="lname" type="text" name="lname" class="required"  maxlength="200" value="" />
+                                                                    <input type="submit" name="submit_name" value="Save"/>
+                                                    </span>
+                                                    <button class="edit" type="button"title="Full Name" id="edit_name">Edit</button>
+                                            </td>
+
+                                </tr>
+                                <tr class="odd">
+                                            <td class="key">Affiliation</td>
+                                            <td class="value">
+                                                    <span id="affval" class="value">UPMC</span>
+                                                    <img class="logo" src="{{STATIC_URL}}/img/ques_icon.png" onclick="affAlert()"  title="To change your affiliation please contact the administrator" style="height: 20px; width: 20px; position: absolute; left: 625px; left: 900px; ">
+                                            </td>
+                                    </tr>
+                            
+                        <tr class="even">
+                                    <td class="key">Generate Keys</td>
+                                    <td> 
+                                        </div>
+                                            <button id="generate_keypair" name="generate" type="submit" onclick="myFunction()" title="Generate a new key pair. After it is generated, you will need to download your public and private keys again.">Generate a new Key Pair </button>
+                                         </div>
+                                    </td> 
+                            </tr>
+                            <tr class="odd">
+                                    <td class="key">Public Key
+                                    </td>
+                                    <td class="value">
+                                            
+                                            <span id="keyval" class="value">******** </span>
+                                            <span class="hide_this" id="span_upload">
+                                                    <button type="button" class="cancel" title="Cancel" id="cancel_upload"> Cancel </button>
+                                                        <div style='display:none;'>
+                                                            <input type='hidden'  name='upload'  /></div>
+                                                            <input type="file" name="pubkey" id="pubkey"/> 
+                                                            
+                                                            <button name="upload_key" id="upload_key"  type="submit" title="Delete your private key">Upload </button>
+                                                            
+                                            </span>
+                                                <div style='display:none;'>
+                                                    <input type='hidden'  name='dload'  />
+                                                </div> 
+                                                    <button type="submit" name="dl_pubkey" class="download" title="Download your public key" id="dl_file"> Download </button>
+                                             <button id="upload_file" type="button" title="Upload a public key"> Upload </button>       
+                                    </td>
+                            </tr>
+                                    <tr class="even" id="pkey_row" display="none">
+                                            <td class="key">Private Key </td>
+                                            <td class="value">********<a href="#">
+                                                 <button type="submit" name="dl_pkey" class="download" title="Download your privaye key" id="dl_pkey"> Download </button>
+                                                 <button id="delete" name="delete" type="submit" title="Delete your private key">Delete </button>
+                                            </td>
+                                    </tr>
+                                    <tr class="odd">
+                                            <td colspan="2">
+
+                                                    <p class="warning" id="pkey_del_msg"> For better
+                                                    security we recommend that you
+                                                    download and delete your 
+                                                    private key from the 
+                                                    server. Always store your 
+                                                    private key in a secure 
+                                                    location. </p>
+                                            </td>
+                                    </tr>
+
+                            </table>
+                          </form>
+                    </div>
+            </div>
+       
+    </div>
+ </div>
+
+{% endblock %}
index 64333b6..b756c98 100644 (file)
@@ -42,6 +42,9 @@ urlpatterns = patterns('',
     # User validation
     url(r'^user/validate/?$', UserValidateView.as_view(), name='user_validate'),
     url(r'^dashboard/?$', DashboardView.as_view(), name='dashboard'),
+    #url(r'^my_account/?$', MyAccountView.as_view(), name='my_account'),
+    url(r'^account/?$', views.my_account),
+    url(r'^acc_process/?$', views.acc_process),
     url(r'^contact/?$', views.contact),
     # Slice request
     url(r'^slice_request/?$', views.slice_request),
index 3254e9b..73e1ea4 100644 (file)
@@ -35,7 +35,7 @@ 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.http                 import HttpResponseRedirect, HttpResponse
 
 class DashboardView(TemplateView):
     template_name = "dashboard.html"
@@ -118,7 +118,7 @@ class UserRegisterView(RegistrationView):
     setting ``REGISTRATION_OPEN`` and setting it to
     ``False``. Omitting this setting, or setting it to ``True``, will
     be interpreted as meaning that registration is currently open and
-    permitted.
+    permitt ed.
 
     Internally, this is accomplished via storing an activation key in
     an instance of ``registration.models.RegistrationProfile``. See
@@ -431,6 +431,83 @@ class UserValidateView(ActivationView):
 # DEPRECATED #    return p.render()
 
 
+# DEPRECATED ## view for my_account
+# DEPRECATED # class MyAccountView(TemplateView):
+# DEPRECATED #    template_name = "my_account.html"
+# DEPRECATED #    
+# DEPRECATED #    def from_process(self, request, **cleaned_data): 
+# DEPRECATED #        #if request.method == 'POST':
+# DEPRECATED #         #       if request.POST['submit_name']:
+# DEPRECATED #        if 'fname' in request.POST:            
+# DEPRECATED #                messsag= "Got Name"
+# DEPRECATED #                #return render(request, 'portal/my_account.html')
+# DEPRECATED #                #response = HttpResponse("Here's the text of the Web page.")    
+# DEPRECATED #                return HttpResponse(message)
+# DEPRECATED #            
+# DEPRECATED #    def get_context_data(self, **kwargs):
+# DEPRECATED #        page = Page(self.request)
+# DEPRECATED #        context = super(MyAccountView, self).get_context_data(**kwargs)
+# DEPRECATED #        context['person']   = self.request.user
+# DEPRECATED #        # XXX This is repeated in all pages
+# DEPRECATED #        # more general variables expected in the template
+# DEPRECATED #        context['title'] = 'User Profile Page'
+# DEPRECATED #        # the menu items on the top
+# DEPRECATED #        context['topmenu_items'] = topmenu_items('my_account', self.request)
+# DEPRECATED #        # so we can sho who is logged
+# DEPRECATED #        context['username'] = the_user(self.request)
+# DEPRECATED #        context.update(page.prelude_env())
+# DEPRECATED #        return context
+
+
+
+# View for my_account form
+def my_account(request):
+    return render(request, 'my_account.html')
+
+#my_acc form value processing
+def acc_process(request):
+    if 'submit_name' in request.POST:
+        edited_first_name =  request.POST['fname']
+        edited_last_name =  request.POST['lname']
+        #email = 'test_email@gmail.com'
+        #password = 'test_pp'
+        #message = 'F_Name: %s L_name: %s dummy_pp: %s' % (first_name, last_name, password)
+        #site = None
+        
+        # insert into DB [needed for registration page]
+        #approach borrowed from register view     
+        #new_user = PendingUser.objects.create_inactive_user(edited_first_name, edited_last_name, email,  password, site) 
+        #conventional approach
+        #b = PendingUser(first_name=edited_first_name, edited_last_name=last_name)
+        #b.save()
+        
+        # select and update [will be used throughout this view]
+        # select the logged in user [for the moment hard coded]
+        get_user = PendingUser.objects.get(id='1') # here we will get the id/email from session e.g., person.email
+        # update first and last name
+        get_user.first_name = edited_first_name
+        get_user.last_name = edited_last_name
+        get_user.save() 
+
+        return HttpResponse('Success: Name Updated!!')       
+    elif 'submit_pass' in request.POST:
+        edited_password = request.POST['password']
+        # select the logged in user [for the moment hard coded]
+        get_user = PendingUser.objects.get(id='1') # here we will get the id/email from session e.g., person.email
+        # update password
+        get_user.password = edited_password
+        get_user.save()
+        return HttpResponse('Success: Password Changed!!')
+    elif 'generate' in request.POST:
+        a =2
+        message = 'Here will generate ssh-rsa keys :D %d' %a
+        return HttpResponse(message)
+    else:
+        message = 'You submitted an empty form.'
+        return HttpResponse(message)
+
+
+
 # view for contact form
 def contact(request):
     if request.method == 'POST': # If the form has been submitted...