#4291 Fix and optimize listing the dependant/blocked tickets
Merged 5 years ago by pingou. Opened 5 years ago by pingou.

file modified
+2
@@ -521,6 +521,7 @@ 

      status = flask.request.args.get("status", None)

      tags = flask.request.args.getlist("tags")

      tags = [tag.strip() for tag in tags if tag.strip()]

+     search_id = flask.request.args.get("query_id", None)

  

      priority_key = None

      if priority:
@@ -560,6 +561,7 @@ 

          "priority": priority_key,

          "order": order,

          "no_milestones": no_stones,

+         "search_id": search_id,

      }

  

      if status is not None:

file modified
+9 -2
@@ -47,8 +47,7 @@ 

  import werkzeug

  

  from six.moves.urllib_parse import urlparse, urlencode, parse_qsl

- from sqlalchemy import func

- from sqlalchemy import asc, desc

+ from sqlalchemy import asc, desc, func, cast, Text

  from sqlalchemy.orm import aliased

  from flask import url_for

  
@@ -2728,6 +2727,7 @@ 

      count=False,

      offset=None,

      limit=None,

+     search_id=None,

      search_pattern=None,

      search_content=None,

      custom_search=None,
@@ -2788,6 +2788,8 @@ 

      :kwarg count: a boolean to specify if the method should return the list

          of Issues or just do a COUNT query.

      :type count: boolean

+     :kwarg search_id: an integer to search in issues identifier

+     :type search_id: int or None

      :kwarg search_pattern: a string to search in issues title

      :type search_pattern: str or None

      :kwarg search_content: a string to search in the issues comments
@@ -3021,6 +3023,11 @@ 

              model.Issue.title.ilike("%%%s%%" % search_pattern)

          )

  

+     if search_id is not None:

+         query = query.filter(

+             cast(model.Issue.id, Text).ilike("%%%s%%" % search_id)

+         )

+ 

      column = model.Issue.date_created

      if order_key:

          # If we are ordering by assignee, then order by the assignees'

file modified
+33 -24
@@ -1092,6 +1092,21 @@ 

      }

    );

  

+   function _get_issues(url, callback){

+     $.getJSON(

+         url,

+         function( data ) {

+           issues = data.issues.filter(function(el) {

+             return el.id !== {{issue.id}};

+           });

+           callback(issues);

+           if (data.pagination.next){

+             _get_issues(data.pagination.next, callback)

+           }

+         }

+       );

+   }

+ 

    $('.mainform #blocking').selectize({

      plugins: ['remove_button'],

      valueField: 'id',
@@ -1108,18 +1123,15 @@ 

      },

      create: false,

      load: function(query, callback) {

-       $.getJSON(

-         "{{ url_for('api_ns.api_view_issues',

-                     repo=repo.name,

-                     username=username,

-                     namespace=repo.namespace) }}",

-         function( data ) {

-           issues = data.issues.filter(function(el) {

-             return el.id !== {{issue.id}};

-           });

-           callback(issues);

-         }

-       );

+       if (!query){

+         callback();

+         return;

+       };

+       var _url = "{{ url_for('api_ns.api_view_issues',

+             repo=repo.name,

+             username=username,

+             namespace=repo.namespace) }}" + "?query_id=" + query;

+       _get_issues(_url, callback);

      }

    });

  
@@ -1139,18 +1151,15 @@ 

      },

      create: false,

      load: function(query, callback) {

-       $.getJSON(

-         "{{ url_for('api_ns.api_view_issues',

-                     repo=repo.name,

-                     username=username,

-                     namespace=repo.namespace) }}",

-         function( data ) {

-           issues = data.issues.filter(function(el) {

-             return el.id !== {{issue.id}};

-           });

-           callback(issues);

-         }

-       );

+       if (!query){

+         callback();

+         return;

+       };

+       var _url = "{{ url_for('api_ns.api_view_issues',

+             repo=repo.name,

+             username=username,

+             namespace=repo.namespace) }}" + "?query_id=" + query;

+       _get_issues(_url, callback);

      }

    });

  

no initial comment

rebased onto c9a9f680cab868925c33b63a08f6df9194317a3e

5 years ago

rebased onto e244449

5 years ago

Pull-Request has been merged by pingou

5 years ago