Advertisement
Guest User

Untitled

a guest
Aug 25th, 2017
102
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 2.84 KB | None | 0 0
  1. from reviewboard.extensions.base import Extension, JSExtension
  2. from reviewboard.accounts.forms.pages import AccountPageForm
  3. from reviewboard.accounts.pages import AccountPage
  4. from reviewboard.extensions.hooks import URLHook, AccountPagesHook, SignalHook
  5. from reviewboard.reviews.signals import review_request_closing
  6. from reviewboard.reviews.models.review import ReviewRequest
  7. from reviewboard.diffviewer.models import FileDiff, DiffSet
  8. from django.forms.widgets import PasswordInput
  9. from django import forms
  10. from django.conf.urls import patterns, url, include
  11.  
  12. from rb_svncommit.models import SvnUserModel
  13.  
  14. import logging
  15.  
  16.  
  17. class SvnUserForm(AccountPageForm):
  18.     form_id = 'svn_user_credentials_form'
  19.     form_title = 'SVN credentials'
  20.  
  21.     def __init__(self, user, *args, **kwargs):
  22.         self.user = user
  23.         super(AccountPageForm, self).__init__(user, *args, **kwargs)
  24.  
  25.     username = forms.CharField(label='Username', max_length=100)
  26.     password = forms.CharField(label='Password', max_length=50, widget=PasswordInput)
  27.  
  28.     def save(self):
  29.         data = self.cleaned_data
  30.  
  31.         new_username = data.get('username')
  32.         new_password = data.get('password')
  33.  
  34.         if SvnUserModel.objects.filter(user=self.user).exists():
  35.             SvnUserModel.objects.filter(user=self.user).update(
  36.                 user=self.user,
  37.                 username=new_username,
  38.                 password=new_password
  39.             )
  40.         else:
  41.             svn_user = SvnUserModel(user=self.user, username=new_username, password=new_password)
  42.             svn_user.save()
  43.  
  44.  
  45. class SvnUserPage(AccountPage):
  46.     page_id = 'svn_user_credentials_page'
  47.     page_title = 'SVN credentials'
  48.     form_classes = [SvnUserForm]
  49.  
  50.  
  51. class SvnCommitJSExtension(JSExtension):
  52.     model_class = 'SvnCommit.Extension'
  53.  
  54.  
  55. class SvnCommitExtension(Extension):
  56.     metadata = {
  57.         'Name': 'SvnCommit',
  58.     }
  59.  
  60.     def initialize(self):
  61.         AccountPagesHook(self, [SvnUserPage])
  62.  
  63.         urlpatterns = patterns('',
  64.                                url(r'^rb_svncommit/', include('rb_svncommit.urls'))
  65.                                )
  66.         SignalHook(self, review_request_closing, self.on_submit_review)
  67.         URLHook(self, urlpatterns)
  68.  
  69.     def on_submit_review(self, *args, **kwargs):
  70.         close_type = kwargs.get('type')
  71.         review_request = kwargs.get('review_request')
  72.         if close_type == ReviewRequest.SUBMITTED:
  73.             repository = review_request.repository
  74.             branch = review_request.branch
  75.             commit = review_request.commit
  76.             diff_sets = review_request.get_diffsets()
  77.             url_rev = review_request.get_absolute_url()
  78.             data = {'repository': repository, 'branch': branch, 'commit': commit, 'url': url_rev}
  79.             logging.debug(str(data))
  80.         else:
  81.             pass
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement