changeset 5439:b9c9216d6fa7

pull requests: make owner editable with auto completion
author Mads Kiilerich <madski@unity3d.com>
date Wed, 26 Aug 2015 17:28:59 +0200
parents 68011c4e6f33
children 568785df959c
files kallithea/controllers/pullrequests.py kallithea/model/forms.py kallithea/templates/pullrequests/pullrequest_show.html kallithea/tests/functional/test_pullrequests.py
diffstat 4 files changed, 15 insertions(+), 4 deletions(-) [+]
line wrap: on
line diff
--- a/kallithea/controllers/pullrequests.py	Wed Aug 26 17:28:59 2015 +0200
+++ b/kallithea/controllers/pullrequests.py	Wed Aug 26 17:28:59 2015 +0200
@@ -61,6 +61,7 @@
 from kallithea.controllers.changeset import _ignorews_url, _context_url
 from kallithea.controllers.compare import CompareController
 from kallithea.lib.graphmod import graph_data
+from kallithea.model.db import User ### FIXME
 
 log = logging.getLogger(__name__)
 
@@ -497,6 +498,7 @@
         old_description = pull_request.description
         pull_request.title = _form['pullrequest_title']
         pull_request.description = _form['pullrequest_desc'].strip() or _('No description')
+        pull_request.owner = User.get_by_username(_form['owner'])
         try:
             PullRequestModel().mention_from_description(pull_request, old_description)
             PullRequestModel().update_reviewers(pull_request_id, reviewers_ids)
--- a/kallithea/model/forms.py	Wed Aug 26 17:28:59 2015 +0200
+++ b/kallithea/model/forms.py	Wed Aug 26 17:28:59 2015 +0200
@@ -518,6 +518,8 @@
         pullrequest_desc = v.UnicodeString(strip=True, required=False)
         review_members = v.Set()
         updaterev = v.UnicodeString(strip=True, required=False, if_missing=None)
+        owner = All(v.UnicodeString(strip=True, required=True),
+                    v.ValidRepoUser())
 
     return _PullRequestPostForm
 
--- a/kallithea/templates/pullrequests/pullrequest_show.html	Wed Aug 26 17:28:59 2015 +0200
+++ b/kallithea/templates/pullrequests/pullrequest_show.html	Wed Aug 26 17:28:59 2015 +0200
@@ -38,7 +38,7 @@
             <label>${_('Description')}:</label>
             %if editable:
             <div style="margin: 5px">
-              <a class="btn btn-small" onclick="$('#pr-edit-form').show();$('.pr-not-edit').hide()">${_("Edit")}</a>
+              <a class="btn btn-small" onclick="$('.pr-do-edit').show();$('.pr-not-edit').hide()">${_("Edit")}</a>
             </div>
             %endif
           </div>
@@ -48,7 +48,7 @@
         </div>
 
         %if editable:
-        <div id="pr-edit-form" style="display:none">
+        <div class="pr-do-edit" style="display:none">
           <div class="field">
               <div class="label-summary">
                   <label for="pullrequest_title">${_('Title')}:</label>
@@ -153,13 +153,17 @@
           <div class="label-summary">
               <label>${_('Owner')}:</label>
           </div>
-          <div class="input">
+          <div class="input pr-not-edit">
                   <div class="gravatar">
                     ${h.gravatar(c.pull_request.owner.email, size=20)}
                   </div>
                   <span>${c.pull_request.owner.full_name_and_username}</span><br/>
                   <span><a href="mailto:${c.pull_request.owner.email}">${c.pull_request.owner.email}</a></span><br/>
           </div>
+          <div class="input pr-do-edit ac" style="display:none">
+               ${h.text('owner', class_="large", value=c.pull_request.owner.username, placeholder=_('Username'))}
+               <div id="owner_completion_container"></div>
+          </div>
         </div>
 
         <div class="field">
@@ -373,6 +377,7 @@
     <script type="text/javascript">
       $(document).ready(function(){
           PullRequestAutoComplete($('#user'), $('#reviewers_container'), _USERS_AC_DATA);
+          SimpleUserAutoComplete($('#owner'), $('#owner_completion_container'), _USERS_AC_DATA);
 
           $('.code-difftable').on('click', '.add-bubble', function(e){
               show_comment_form($(this));
@@ -391,7 +396,7 @@
           });
           var $org_review_members = $('#review_members').clone();
           $('#pr-form-reset').click(function(e){
-              $('#pr-edit-form').hide();
+              $('.pr-do-edit').hide();
               $('.pr-not-edit').show();
               $('#pr-form-save').prop('disabled',false);
               $('#pr-form-clone').prop('disabled',true);
--- a/kallithea/tests/functional/test_pullrequests.py	Wed Aug 26 17:28:59 2015 +0200
+++ b/kallithea/tests/functional/test_pullrequests.py	Wed Aug 26 17:28:59 2015 +0200
@@ -100,6 +100,7 @@
                                   'updaterev': 'default',
                                   'pullrequest_title': 'title',
                                   'pullrequest_desc': 'description',
+                                  'owner': TEST_USER_ADMIN_LOGIN,
                                   '_authentication_token': self.authentication_token(),
                                   'review_members': invalid_user_id,
                                  },
@@ -135,6 +136,7 @@
                                  {
                                   'pullrequest_title': 'title',
                                   'pullrequest_desc': 'description',
+                                  'owner': TEST_USER_ADMIN_LOGIN,
                                   '_authentication_token': self.authentication_token(),
                                   'review_members': invalid_user_id,
                                  },