Ejemplo n.º 1
0
def index(request: HttpRequest):
    repositories = Repository.index_queryset(request).annotate(
        package_count=Count('element'))
    if not request.user.has_perm('repository.add_repository'):
        form = None
    elif request.method == 'POST':
        form = get_repository_form()(request.POST)
        if form.is_valid():
            author = None if request.user.is_anonymous() else request.user
            repo = Repository(author=author,
                              name=form.cleaned_data['name'],
                              on_index=form.cleaned_data['on_index'],
                              archive_type=form.cleaned_data['archive_type'],
                              is_private=form.cleaned_data['is_private'])
            repo.save()
            for group in form.cleaned_data['admin_group']:
                repo.admin_group.add(group)
            for state in set(form.cleaned_data['states'].split()):
                ArchiveState(repository=repo, name=state, author=author).save()
            messages.info(request, _('Your new repository has been created.'))
            return HttpResponseRedirect(reverse('moneta:index'))
    else:
        form = get_repository_form()()
    # compute repos with admin rights
    upload_ids = {x.id for x in Repository.upload_queryset(request)}
    admin_ids = {x.id for x in Repository.admin_queryset(request)}
    template_values = {
        'repositories': repositories,
        'form': form,
        'request': request,
        'upload_ids': upload_ids,
        'admin_ids': admin_ids,
    }
    return render_to_response('moneta/index.html', template_values,
                              RequestContext(request))
Ejemplo n.º 2
0
 def setUpClass(cls):
     super().setUpClass()
     cls.repo = Repository(archive_type=Maven3.archive_type,
                           name='test_maven3')
     cls.repo.save()
     cls.elts = [
         Element(
             version='1.1.4c',
             archive='xpp3.xpp3_min',
             name='xpp3_min',
             filename='xpp3_min-1.1.4c.jar',
             full_name='xpp3_min-1.1.4c.jar',
             sha1='19d4e90b43059058f6e056f794f0ea4030d60b86',
         ),
         Element(
             version='1.0-2',
             archive='javax.xml.stream.stax-api',
             name='stax-api',
             filename='stax-api-1.0-2.jar',
             full_name='stax-api-1.0-2.jar',
             sha1='d6337b0de8b25e53e81b922352fbea9f9f57ba0b',
         ),
         Element(
             version='1.0-2',
             archive='javax.xml.stream.stax-api',
             name='stax-api',
             filename='stax-api-1.0-2.pom',
             full_name='stax-api-1.0-2.pom',
             sha1='5379b69f557c5ab7c144d22bf7c3768bd2adb93d',
         ),
         Element(
             version='2.2.2',
             archive='javax.xml.bind.jaxb-api',
             name='jaxb-api',
             filename='jaxb-api-2.2.2.jar',
             full_name='jaxb-api-2.2.2.jar',
             sha1='aeb3021ca93dde265796d82015beecdcff95bf09',
         ),
         Element(
             version='2.2.2',
             archive='javax.xml.bind.jaxb-api',
             name='jaxb-api',
             filename='jaxb-api-2.2.2.pom',
             full_name='jaxb-api-2.2.2.pom',
             sha1='a8368234f7555dd64d3a9060a0b02e6c215694fb',
         ),
     ]
     for elt in cls.elts:
         elt.repository = cls.repo
     Element.objects.bulk_create(cls.elts)
Ejemplo n.º 3
0
 def create_repository(self,
                       repo_cls,
                       name='test_repo',
                       author=None,
                       states='qualif prod'):
     assert issubclass(repo_cls, RepositoryModel)
     if author is None:
         author = User.objects.get_or_create(username='******')[0]
     repo = Repository(author=author,
                       name=name,
                       on_index=True,
                       archive_type=repo_cls.archive_type,
                       is_private=False)
     repo.save()
     for state in states.split():
         ArchiveState(repository=repo, name=state, author=author).save()
     return repo