Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package python-django-rq for 
openSUSE:Factory checked in at 2023-02-10 14:36:10
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-django-rq (Old)
 and      /work/SRC/openSUSE:Factory/.python-django-rq.new.1848 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "python-django-rq"

Fri Feb 10 14:36:10 2023 rev:3 rq:1064214 version:2.7.0

Changes:
--------
--- /work/SRC/openSUSE:Factory/python-django-rq/python-django-rq.changes        
2023-01-04 20:18:35.745630047 +0100
+++ 
/work/SRC/openSUSE:Factory/.python-django-rq.new.1848/python-django-rq.changes  
    2023-02-10 14:36:19.258279283 +0100
@@ -1,0 +2,8 @@
+Fri Feb 10 10:30:19 UTC 2023 - Dirk Müller <dmuel...@suse.com>
+
+- update to 2.7.0:
+  * Able to show multiple execution results for each job
+    (requires RQ v1.12). 
+  * Various admin interface improvements.
+
+-------------------------------------------------------------------

Old:
----
  django-rq-2.6.0.tar.gz

New:
----
  django-rq-2.7.0.tar.gz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ python-django-rq.spec ++++++
--- /var/tmp/diff_new_pack.Mmki4C/_old  2023-02-10 14:36:19.646281601 +0100
+++ /var/tmp/diff_new_pack.Mmki4C/_new  2023-02-10 14:36:19.646281601 +0100
@@ -19,7 +19,7 @@
 %define skip_python2 1
 %{?!python_module:%define python_module() python-%{**} python3-%{**}}
 Name:           python-django-rq
-Version:        2.6.0
+Version:        2.7.0
 Release:        0
 Summary:        Simple app that provides django integration for RQ (Redis 
Queue)
 License:        MIT

++++++ django-rq-2.6.0.tar.gz -> django-rq-2.7.0.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/django-rq-2.6.0/.github/workflows/test.yml 
new/django-rq-2.7.0/.github/workflows/test.yml
--- old/django-rq-2.6.0/.github/workflows/test.yml      2022-11-05 
03:01:04.000000000 +0100
+++ new/django-rq-2.7.0/.github/workflows/test.yml      2023-02-07 
12:10:27.000000000 +0100
@@ -16,7 +16,7 @@
     name: Python${{ matrix.python-version }}/Django${{ matrix.django-version }}
     strategy:
       matrix:
-        python-version: ["3.8.3", "3.9", "3.10"]
+        python-version: ["3.8", "3.9", "3.10"]
         django-version: ["3.2.16", "4.0.8", "4.1.3"]
 
     steps:
@@ -38,4 +38,4 @@
 
     - name: Run Test
       run: |
-        `which django-admin` test django_rq 
--settings=django_rq.tests.settings --pythonpath=.
\ No newline at end of file
+        `which django-admin` test django_rq 
--settings=django_rq.tests.settings --pythonpath=.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/django-rq-2.6.0/CHANGELOG.md 
new/django-rq-2.7.0/CHANGELOG.md
--- old/django-rq-2.6.0/CHANGELOG.md    2022-11-05 03:01:04.000000000 +0100
+++ new/django-rq-2.7.0/CHANGELOG.md    2023-02-07 12:10:27.000000000 +0100
@@ -1,4 +1,8 @@
-# Version 2.5.2 (2022-11-05)
+# Version 2.7.0 (2023-02-07)
+* Able to show multiple execution results for each job (requires RQ v1.12). 
Thanks @selwin!
+* Various admin interface improvements. Thanks @selwin!
+
+# Version 2.6.0 (2022-11-05)
 * Added `--max-jobs` argument to `rqworker` management command. Thanks 
@arpit-goel!
 * Remove job from `ScheduledJobRegistry` if a scheduled job is enqueued from 
admin. Thanks @robertaistleitner!
 * Minor code cleanup. Thanks @reybog90! 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/django-rq-2.6.0/README.rst 
new/django-rq-2.7.0/README.rst
--- old/django-rq-2.6.0/README.rst      2022-11-05 03:01:04.000000000 +0100
+++ new/django-rq-2.7.0/README.rst      2023-02-07 12:10:27.000000000 +0100
@@ -80,12 +80,6 @@
 
 .. code-block:: python
 
-    # For Django < 2.0
-    urlpatterns += [
-        url(r'^django-rq/', include('django_rq.urls')),
-    ]
-
-    # For Django >= 2.0
     urlpatterns += [
         path('django-rq/', include('django_rq.urls'))
     ]
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/django-rq-2.6.0/django_rq/__init__.py 
new/django-rq-2.7.0/django_rq/__init__.py
--- old/django-rq-2.6.0/django_rq/__init__.py   2022-11-05 03:01:04.000000000 
+0100
+++ new/django-rq-2.7.0/django_rq/__init__.py   2023-02-07 12:10:27.000000000 
+0100
@@ -1,4 +1,4 @@
-VERSION = (2, 6, 0)
+VERSION = (2, 7, 0)
 
 from .decorators import job
 from .queues import enqueue, get_connection, get_queue, get_scheduler
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/django-rq-2.6.0/django_rq/templates/django_rq/job_detail.html 
new/django-rq-2.7.0/django_rq/templates/django_rq/job_detail.html
--- old/django-rq-2.6.0/django_rq/templates/django_rq/job_detail.html   
2022-11-05 03:01:04.000000000 +0100
+++ new/django-rq-2.7.0/django_rq/templates/django_rq/job_detail.html   
2023-02-07 12:10:27.000000000 +0100
@@ -1,4 +1,4 @@
-{% extends "admin/base_site.html" %}
+{% extends "admin/change_list.html" %}
 
 {% load static django_rq %}
 
@@ -27,7 +27,7 @@
     </div>
 {% endblock %}
 
-{% block content_title %}<h1>Job Info</h1>{% endblock %}
+{% block content_title %}<h2>Job {{ job.id }}</h2>{% endblock %}
 
 {% block content %}
 
@@ -37,37 +37,30 @@
 
         <div class="form-row">
             <div>
-                <label class="required">ID:</label>
-                <div class="data">{{ job.id }}</div>
+                <label>Queue:</label>
+                <div class="readonly">{{ job.origin }}</div>
             </div>
         </div>
 
         <div class="form-row">
             <div>
-                <label class="required">Queue:</label>
-                <div class="data">{{ job.origin }}</div>
+                <label>Timeout:</label>
+                <div class="readonly">{{ job.timeout }}</div>
             </div>
         </div>
 
         <div class="form-row">
             <div>
-                <label class="required">Timeout:</label>
-                <div class="data">{{ job.timeout }}</div>
-            </div>
-        </div>
-
-        <div class="form-row">
-            <div>
-                <label class="required">Result TTL:</label>
-                <div class="data">{{ job.result_ttl }}</div>
+                <label>Result TTL:</label>
+                <div class="readonly">{{ job.result_ttl }}</div>
             </div>
         </div>
 
         {% if job.created_at %}
         <div class="form-row">
             <div>
-                <label class="required">Created:</label>
-                <div class="data">{{ job.created_at|to_localtime|date:"Y-m-d, 
H:i:s" }}</div>
+                <label>Created:</label>
+                <div class="readonly">{{ 
job.created_at|to_localtime|date:"Y-m-d, H:i:s" }}</div>
             </div>
         </div>
         {% endif %}
@@ -75,8 +68,8 @@
         {% if job.enqueued_at %}
         <div class="form-row">
             <div>
-                <label class="required">Queued:</label>
-                <div class="data">{{ job.enqueued_at|to_localtime|date:"Y-m-d, 
H:i:s" }}</div>
+                <label>Queued:</label>
+                <div class="readonly">{{ 
job.enqueued_at|to_localtime|date:"Y-m-d, H:i:s" }}</div>
             </div>
         </div>
         {% endif %}
@@ -84,8 +77,8 @@
         {% if job.started_at %}
         <div class="form-row">
             <div>
-                <label class="required">Started:</label>
-                <div class="data">{{ job.started_at|to_localtime|date:"Y-m-d, 
H:i:s" }}</div>
+                <label>Started:</label>
+                <div class="readonly">{{ 
job.started_at|to_localtime|date:"Y-m-d, H:i:s" }}</div>
             </div>
         </div>
         {% endif %}
@@ -93,37 +86,37 @@
         {% if job.ended_at %}
         <div class="form-row">
             <div>
-                <label class="required">Ended:</label>
-                <div class="data">{{ job.ended_at|to_localtime|date:"Y-m-d, 
H:i:s" }}</div>
+                <label>Ended:</label>
+                <div class="readonly">{{ 
job.ended_at|to_localtime|date:"Y-m-d, H:i:s" }}</div>
             </div>
         </div>
         {% endif %}
 
         <div class="form-row">
             <div>
-                <label class="required">Status:</label>
-                <div class="data">{{ job.get_status }}</div>
+                <label>Status:</label>
+                <div class="readonly">{{ job.get_status }}</div>
             </div>
         </div>
 
         <div class="form-row">
             <div>
-                <label class="required">Callable:</label>
-                <div class="data">{{ job|show_func_name }}</div>
+                <label>Callable:</label>
+                <div class="readonly">{{ job|show_func_name }}</div>
             </div>
         </div>
 
         <div class="form-row">
             <div>
-                <label class="required">Meta:</label>
+                <label>Meta:</label>
                 <div class="data">{{ job.meta }}</div>
             </div>
         </div>
 
         <div class="form-row">
             <div>
-                <label class="required">Args:</label>
-                <div class="data">
+                <label>Args:</label>
+                <div>
                     {% if data_is_valid %}
                         {% if job.args %}
                           <ul>
@@ -141,8 +134,8 @@
 
         <div class="form-row">
             <div>
-                <label class="required">Kwargs:</label>
-                <div class="data">
+                <label>Kwargs:</label>
+                <div>
                     {% if data_is_valid %}
                         {% if job.kwargs %}
                             <ul>
@@ -160,8 +153,8 @@
 
         <div class="form-row">
             <div>
-                <label class="required">Depends On:</label>
-                <div class="data">
+                <label>Depends On:</label>
+                <div class="readonly">
                     {% if dependency_id %}
                     <a href = "{% url 'rq_job_detail' queue_index 
dependency_id %}">
                         {{ dependency_id }}
@@ -170,23 +163,26 @@
                 </div>
             </div>
         </div>
-
-
-        <div class="form-row">
-            <div>
-                <label class="required">Exception:</label>
-                <div class="data"><pre>{% if job.exc_info %}{{ 
job.exc_info|linebreaks }}{% endif %}</pre></div>
+        {% if exc_info %}
+            <div class="form-row">
+                <div>
+                    <label>Exception:</label>
+                    <div><pre>{% if job.exc_info %}{{ job.exc_info|linebreaks 
}}{% endif %}</pre></div>
+                </div>
             </div>
-        </div>
-
+        {% endif %}
+        
+        {% if job.legacy_result %}
         <div class="form-row">
             <div>
-                <label class="required">Result:</label>
-                <div class="data">{{ job.result }}</div>
+                <label>Result:</label>
+                <div>{{ job.result }}</div>
             </div>
         </div>
+        {% endif %}
 
     </fieldset>
+        
 
     <div class="submit-row">
         <p class="deletelink-box"><a href="delete/" 
class="deletelink">Delete</a></p>
@@ -204,6 +200,48 @@
         {% endif %}
     </div>
 
+
+    <div class="inline-group" id="choice_set-group">
+
+        {% for result in job.results %}
+        <h2>Result {{ result.id }}</h2>
+        <div class="inline-related">
+          
+            <fieldset class="module aligned ">    
+                <div class="form-row field-choice_text">                      
+                    <div>
+                        <label>Type:</label>
+                        <div class="readonly">{{ result.type.name }}</div>
+                    </div>                    
+                </div>
+            
+                <div class="form-row field-votes">
+                    <div>
+                        <label>Created at: {{ result.Type }}</label>
+                        <div class="readonly">{{ 
result.created_at|to_localtime|date:"Y-m-d, H:i:s" }}</div>
+                    </div>            
+                </div>
+                {% if result.type.value == 1 %}
+                    <div class="form-row field-votes">
+                        <div>
+                            <label>Return value:</label>
+                            <div><pre>{{ result.return_value }}</pre></div>
+                        </div>            
+                    </div>
+                {% elif result.type.value == 2 %}
+                    <div class="form-row field-votes">
+                        <div>
+                            <label>Exception:</label>
+                            <div><pre>{{ result.exc_string }}</pre></div>
+                        </div>            
+                    </div>
+                {% endif %}
+            
+            </fieldset>
+        </div>
+        {% endfor %}
+    </div>
+
 </div>
 
 {% endblock %}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/django-rq-2.6.0/django_rq/views.py 
new/django-rq-2.7.0/django_rq/views.py
--- old/django-rq-2.6.0/django_rq/views.py      2022-11-05 03:01:04.000000000 
+0100
+++ new/django-rq-2.7.0/django_rq/views.py      2023-02-07 12:10:27.000000000 
+0100
@@ -315,6 +315,7 @@
 def job_detail(request, queue_index, job_id):
     queue_index = int(queue_index)
     queue = get_queue_by_index(queue_index)
+
     try:
         job = Job.fetch(job_id, connection=queue.connection)
     except NoSuchJobError:
@@ -326,13 +327,24 @@
     except:
         data_is_valid = False
 
+    # Backward compatibility support for RQ < 1.12.0
+    rv = job.connection.hget(job.key, 'result')
+    if rv is not None:
+        # cache the result
+        job.legacy_result = job.serializer.loads(rv)    
+    try:
+        exc_info = job._exc_info
+    except AttributeError:
+        exc_info = None
+
     context_data = {
         **admin.site.each_context(request),
         'queue_index': queue_index,
         'job': job,
         'dependency_id': job._dependency_id,
         'queue': queue,
-        'data_is_valid': data_is_valid
+        'data_is_valid': data_is_valid,
+        'exc_info': exc_info,
     }
     return render(request, 'django_rq/job_detail.html', context_data)
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/django-rq-2.6.0/integration_test/requirements.txt 
new/django-rq-2.7.0/integration_test/requirements.txt
--- old/django-rq-2.6.0/integration_test/requirements.txt       2022-11-05 
03:01:04.000000000 +0100
+++ new/django-rq-2.7.0/integration_test/requirements.txt       2023-02-07 
12:10:27.000000000 +0100
@@ -1,5 +1,5 @@
 -e ..
-Django==3.2.16
+Django==3.2.17
 gunicorn==20.1.0
 psycopg2==2.9.5
-requests==2.28.1
+requests==2.28.2
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/django-rq-2.6.0/setup.py new/django-rq-2.7.0/setup.py
--- old/django-rq-2.6.0/setup.py        2022-11-05 03:01:04.000000000 +0100
+++ new/django-rq-2.7.0/setup.py        2023-02-07 12:10:27.000000000 +0100
@@ -3,7 +3,7 @@
 
 setup(
     name='django-rq',
-    version='2.6.0',
+    version='2.7.0',
     author='Selwin Ong',
     author_email='selwin....@gmail.com',
     packages=['django_rq'],
@@ -16,7 +16,7 @@
     package_data={'': ['README.rst']},
     install_requires=['django>=2.0', 'rq>=1.2', 'redis>=3'],
     extras_require={
-        'Sentry':  ['raven>=6.1.0'],
+        'Sentry': ['raven>=6.1.0'],
         'testing': ['mock>=2.0.0'],
     },
     classifiers=[
@@ -36,5 +36,5 @@
         'Programming Language :: Python :: 3.8',
         'Topic :: Internet :: WWW/HTTP',
         'Topic :: Software Development :: Libraries :: Python Modules',
-    ]
+    ],
 )

Reply via email to