Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- from reviewboard.extensions.base import Extension, JSExtension
- from reviewboard.accounts.forms.pages import AccountPageForm
- from reviewboard.accounts.pages import AccountPage
- from reviewboard.extensions.hooks import URLHook, AccountPagesHook, SignalHook
- from reviewboard.reviews.signals import review_request_closing
- from reviewboard.reviews.models.review import ReviewRequest
- from reviewboard.diffviewer.models import FileDiff, DiffSet
- from django.forms.widgets import PasswordInput
- from django import forms
- from django.conf.urls import patterns, url, include
- from rb_svncommit.models import SvnUserModel
- import logging
- class SvnUserForm(AccountPageForm):
- form_id = 'svn_user_credentials_form'
- form_title = 'SVN credentials'
- def __init__(self, user, *args, **kwargs):
- self.user = user
- super(AccountPageForm, self).__init__(user, *args, **kwargs)
- username = forms.CharField(label='Username', max_length=100)
- password = forms.CharField(label='Password', max_length=50, widget=PasswordInput)
- def save(self):
- data = self.cleaned_data
- new_username = data.get('username')
- new_password = data.get('password')
- if SvnUserModel.objects.filter(user=self.user).exists():
- SvnUserModel.objects.filter(user=self.user).update(
- user=self.user,
- username=new_username,
- password=new_password
- )
- else:
- svn_user = SvnUserModel(user=self.user, username=new_username, password=new_password)
- svn_user.save()
- class SvnUserPage(AccountPage):
- page_id = 'svn_user_credentials_page'
- page_title = 'SVN credentials'
- form_classes = [SvnUserForm]
- class SvnCommitJSExtension(JSExtension):
- model_class = 'SvnCommit.Extension'
- class SvnCommitExtension(Extension):
- metadata = {
- 'Name': 'SvnCommit',
- }
- def initialize(self):
- AccountPagesHook(self, [SvnUserPage])
- urlpatterns = patterns('',
- url(r'^rb_svncommit/', include('rb_svncommit.urls'))
- )
- SignalHook(self, review_request_closing, self.on_submit_review)
- URLHook(self, urlpatterns)
- def on_submit_review(self, *args, **kwargs):
- close_type = kwargs.get('type')
- review_request = kwargs.get('review_request')
- if close_type == ReviewRequest.SUBMITTED:
- repository = review_request.repository
- branch = review_request.branch
- commit = review_request.commit
- diff_sets = review_request.get_diffsets()
- url_rev = review_request.get_absolute_url()
- data = {'repository': repository, 'branch': branch, 'commit': commit, 'url': url_rev}
- logging.debug(str(data))
- else:
- pass
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement