Esempio n. 1
0
def edit_repositories(request, campus_slug=None, error=None):
    campus = None
    if campus_slug:
        campus = get_object_or_404(Campus, slug=campus_slug)
        repositoryObjs = Repository.objects.filter(campus=campus).order_by('name')
    else:
        repositoryObjs = Repository.objects.all().order_by('name')
        
    if (request.method == 'POST'):
        requestObj = request.POST
        if ('edit' in requestObj or error):
            context = {
                'campuses': campuses,
                'current_path': request.path,
                'editing': editing(request.path),
                'edit': 'true',
                'repositories': repositoryObjs
            }
            if error:
                context['error'] = error
                if 'campuses' in requestObj:
                    campus = []
                    for campus_id in requestObj.getlist('campuses'):
                        campus.append(Campus.objects.get(pk=campus_id))
                    context['campus_list'] = campus
                if 'name' in requestObj:
                    context['repository'] = {'name': requestObj['name']}
                
            return render(request,
                template_name='library_collection/repository_list.html',
                dictionary=context
            )
        else: 
            try: 
                new_repository = Repository(name = requestObj['name'])
                validated = new_repository.full_clean()
            except ValidationError as e:
                return edit_repositories(request, error='Please enter a unit title')
            
            if len(requestObj.getlist('campuses')) < 1:
               return edit_repositories(request, error='Please enter at least one campus')
            
            new_repository.save()
            new_repository.campus = requestObj.getlist('campuses')
            
            return render(request, template_name='library_collection/repository_list.html', 
                dictionary={
                    'campus': campus,
                    'repositories': repositoryObjs,
                    'campuses': campuses,
                    'active_tab': active_tab(request),
                    'current_path': request.path,
                    'editing': editing(request.path),
                },
            )
    
    return repositories(request, campus_slug)
Esempio n. 2
0
def edit_repositories(request, campus_slug=None, error=None):
    campus = None
    if campus_slug:
        campus = get_object_or_404(Campus, slug=campus_slug)
        repositoryObjs = Repository.objects.filter(
            campus=campus).order_by('name')
    else:
        repositoryObjs = Repository.objects.all().order_by('name')

    if (request.method == 'POST'):
        requestObj = request.POST
        if ('edit' in requestObj or error):
            context = {
                'campuses': campuses,
                'current_path': request.path,
                'editing': editing(request.path),
                'edit': 'true',
                'repositories': repositoryObjs
            }
            if error:
                context['error'] = error
                if 'campuses' in requestObj:
                    campus = []
                    for campus_id in requestObj.getlist('campuses'):
                        campus.append(Campus.objects.get(pk=campus_id))
                    context['campus_list'] = campus
                if 'name' in requestObj:
                    context['repository'] = {'name': requestObj['name']}

            return render(
                request,
                template_name='library_collection/repository_list.html',
                dictionary=context)
        else:
            try:
                new_repository = Repository(name=requestObj['name'])
                validated = new_repository.full_clean()
            except ValidationError as e:
                return edit_repositories(request,
                                         error='Please enter a unit title')

            if len(requestObj.getlist('campuses')) < 1:
                return edit_repositories(
                    request, error='Please enter at least one campus')

            new_repository.save()
            new_repository.campus = requestObj.getlist('campuses')

            return render(
                request,
                template_name='library_collection/repository_list.html',
                dictionary={
                    'campus': campus,
                    'repositories': repositoryObjs,
                    'campuses': campuses,
                    'active_tab': active_tab(request),
                    'current_path': request.path,
                    'editing': editing(request.path),
                },
            )

    return repositories(request, campus_slug)