Skip to content

Commit

Permalink
Added redirect to existing repository from add view.
Browse files Browse the repository at this point in the history
  • Loading branch information
svetlyak40wt committed Aug 14, 2009
1 parent 5a5fdd7 commit c6aa7cb
Show file tree
Hide file tree
Showing 2 changed files with 17 additions and 4 deletions.
5 changes: 3 additions & 2 deletions src/django_vcs_watch/urls.py
Expand Up @@ -33,14 +33,15 @@
}

urlpatterns = patterns('django.views.generic',
(r'^r/(?P<slug>[a-z0-9]{8}-[a-z0-9]{4}-[a-z0-9]{4}-[a-z0-9]{4}-[a-z0-9]{12})/$', 'list_detail.object_detail', repository_info, 'vcs-watch-repository'),
(r'^add/$', 'create_update.create_object', add_page, 'vcs-watch-add'),
(r'^r/(?P<slug>[a-z0-9]{8}-[a-z0-9]{4}-[a-z0-9]{4}-[a-z0-9]{4}-[a-z0-9]{12})/$',
'list_detail.object_detail', repository_info, 'vcs-watch-repository'),
#(r'^r/$', 'simple.direct_to_template', main_page, 'vcs-watch-main-page'),
)

urlpatterns += patterns('django_vcs_watch.views',
(r'^r/(?P<repository_slug>[a-z0-9]{8}-[a-z0-9]{4}-[a-z0-9]{4}-[a-z0-9]{4}-[a-z0-9]{12})/(?P<revision>[a-z0-9-]{1,36})/$', 'revision', {}, 'vcs-watch-revision'),
(r'^profile/$', 'profile', {}, 'vcs-watch-profile'),
(r'^add/$', 'add_repository', add_page, 'vcs-watch-add'),
)

urlpatterns += patterns('django.contrib.syndication.views',
Expand Down
16 changes: 14 additions & 2 deletions src/django_vcs_watch/views.py
@@ -1,9 +1,10 @@
from django.shortcuts import get_object_or_404
from django.views.generic.list_detail import object_detail, object_list
from django.views.generic.create_update import create_object
from django.contrib.auth.decorators import login_required
from django.http import HttpResponseForbidden
from django.http import HttpResponseForbidden, HttpResponseRedirect

from models import Repository
from django_vcs_watch.models import Repository

def revision(request, repository_slug, revision):
repository = get_object_or_404(Repository, hash=repository_slug)
Expand All @@ -13,9 +14,20 @@ def revision(request, repository_slug, revision):
slug=revision,
slug_field='rev')


@login_required
def profile(request):
return object_list(
request,
queryset=request.user.repository_set.all())


def add_repository(request, *args, **kwargs):
url = request.POST.get('url', None)
reps = Repository.objects.filter(url = url).all()

if len(reps) > 0:
return HttpResponseRedirect(reps[0].get_absolute_url())

return create_object(request, *args, **kwargs)

0 comments on commit c6aa7cb

Please sign in to comment.