def redmine_issues_assigned(request): params = request.POST if params is None: raise PermissionDenied cache_key = 'redmine-issues-assigned-%u' % request.user.id assigned_issue_ids = cache.get(cache_key) if assigned_issue_ids is None: redmine_url = Settings.objects.all() if redmine_url is None or len(redmine_url) <= 0: raise PermissionDenied redmine_url = redmine_url[0].redmine_url redmine_api_key = UserSettings.objects.filter(user=request.user) if redmine_api_key is None or len(redmine_api_key) <= 0: raise PermissionDenied redmine_api_key = redmine_api_key[0].redmine_api_key redmine = Redmine(redmine_url, key=redmine_api_key) assigned_issue_ids = [i.id for i in redmine.issues(assigned_to_id=redmine.user.id)] cache_expires = Settings.objects.all() if cache_expires is None or len(cache_expires) <= 0: raise PermissionDenied cache_expires = cache_expires[0].cache_expires cache.set(cache_key, assigned_issue_ids, cache_expires) issues_cache = RedmineIssuesCache(request.user) output = {} for id_ in assigned_issue_ids: issue = issues_cache.get_issue(id_) if issue['valid']: output[id_] = issue return HttpResponse(json.dumps(output), content_type='application/json')