kopia lustrzana https://github.com/wagtail/wagtail
				
				
				
			Rename `page_revision` to `revision` in `TaskState`
							rodzic
							
								
									c7da2988d5
								
							
						
					
					
						commit
						d8f9d9869a
					
				|  | @ -1050,11 +1050,11 @@ Task states store state information about the progress of a task on a particular | |||
| 
 | ||||
|         The workflow state which started this task state. | ||||
| 
 | ||||
|     .. attribute:: page_revision | ||||
|     .. attribute:: revision | ||||
| 
 | ||||
|         (foreign key to ``Revision``) | ||||
| 
 | ||||
|         The page revision this task state was created on. | ||||
|         The revision this task state was created on. | ||||
| 
 | ||||
|     .. attribute:: task | ||||
| 
 | ||||
|  |  | |||
|  | @ -17,7 +17,7 @@ | |||
|             </thead> | ||||
|             <tbody> | ||||
|                 {% for workflow_state in workflow_states %} | ||||
|                     {% with workflow_state.current_task_state.page_revision as revision %} | ||||
|                     {% with workflow_state.current_task_state.revision as revision %} | ||||
|                         {% page_permissions workflow_state.page as page_perms %} | ||||
|                         <tr> | ||||
|                             <td class="title" valign="top"> | ||||
|  |  | |||
|  | @ -17,7 +17,7 @@ | |||
|             </thead> | ||||
|             <tbody> | ||||
|                 {% for task_state, actions, workflow_tasks in states %} | ||||
|                     {% with task_state.page_revision as revision %} | ||||
|                     {% with task_state.revision as revision %} | ||||
|                         {% page_permissions revision.content_object as page_perms %} | ||||
|                         <tr> | ||||
|                             <td class="title" valign="top"> | ||||
|  |  | |||
|  | @ -126,7 +126,7 @@ class UserPagesInWorkflowModerationPanel(Component): | |||
|                     "page", | ||||
|                     "current_task_state", | ||||
|                     "current_task_state__task", | ||||
|                     "current_task_state__page_revision", | ||||
|                     "current_task_state__revision", | ||||
|                 ) | ||||
|                 .order_by("-current_task_state__started_at") | ||||
|             ) | ||||
|  | @ -148,9 +148,9 @@ class WorkflowPagesToModeratePanel(Component): | |||
|             states = ( | ||||
|                 TaskState.objects.reviewable_by(request.user) | ||||
|                 .select_related( | ||||
|                     "page_revision", | ||||
|                     "revision", | ||||
|                     "task", | ||||
|                     "page_revision__user", | ||||
|                     "revision__user", | ||||
|                 ) | ||||
|                 .order_by("-started_at") | ||||
|             ) | ||||
|  | @ -158,7 +158,7 @@ class WorkflowPagesToModeratePanel(Component): | |||
|                 ( | ||||
|                     state, | ||||
|                     state.task.specific.get_actions( | ||||
|                         page=state.page_revision.content_object, user=request.user | ||||
|                         page=state.revision.content_object, user=request.user | ||||
|                     ), | ||||
|                     state.workflow_state.all_tasks_with_status(), | ||||
|                 ) | ||||
|  |  | |||
|  | @ -90,7 +90,7 @@ def workflow_history_detail(request, page_id, workflow_state_id): | |||
|     page_revisions = Revision.page_revisions.filter( | ||||
|         object_id=str(page.id), | ||||
|         id__in=TaskState.objects.filter(workflow_state=workflow_state).values_list( | ||||
|             "page_revision_id", flat=True | ||||
|             "revision_id", flat=True | ||||
|         ), | ||||
|     ).order_by("-created_at") | ||||
| 
 | ||||
|  | @ -101,7 +101,7 @@ def workflow_history_detail(request, page_id, workflow_state_id): | |||
|             { | ||||
|                 task_state.task: task_state | ||||
|                 for task_state in TaskState.objects.filter( | ||||
|                     workflow_state=workflow_state, page_revision=page_revision | ||||
|                     workflow_state=workflow_state, revision=page_revision | ||||
|                 ) | ||||
|             }, | ||||
|         ) | ||||
|  |  | |||
|  | @ -240,8 +240,8 @@ def preview_revision_for_task(request, page_id, task_id): | |||
|     task = get_object_or_404(Task, id=task_id).specific | ||||
|     try: | ||||
|         task_state = TaskState.objects.get( | ||||
|             page_revision__base_content_type=get_default_page_content_type(), | ||||
|             page_revision__object_id=page.id, | ||||
|             revision__base_content_type=get_default_page_content_type(), | ||||
|             revision__object_id=page.id, | ||||
|             task=task, | ||||
|             status=TaskState.STATUS_IN_PROGRESS, | ||||
|         ) | ||||
|  | @ -255,7 +255,7 @@ def preview_revision_for_task(request, page_id, task_id): | |||
|         ) | ||||
|         return redirect("wagtailadmin_home") | ||||
| 
 | ||||
|     revision = task_state.page_revision | ||||
|     revision = task_state.revision | ||||
| 
 | ||||
|     if not task.get_actions(page, request.user): | ||||
|         raise PermissionDenied | ||||
|  |  | |||
|  | @ -104,7 +104,7 @@ class Migration(migrations.Migration): | |||
|                         on_delete=django.db.models.deletion.CASCADE, | ||||
|                         related_name="task_states", | ||||
|                         to="wagtailcore.PageRevision", | ||||
|                         verbose_name="page revision", | ||||
|                         verbose_name="revision", | ||||
|                     ), | ||||
|                 ), | ||||
|                 ( | ||||
|  |  | |||
|  | @ -0,0 +1,18 @@ | |||
| # Generated by Django 4.2.dev20221212120043 on 2022-12-12 13:03 | ||||
| 
 | ||||
| from django.db import migrations | ||||
| 
 | ||||
| 
 | ||||
| class Migration(migrations.Migration): | ||||
| 
 | ||||
|     dependencies = [ | ||||
|         ("wagtailcore", "0078_referenceindex"), | ||||
|     ] | ||||
| 
 | ||||
|     operations = [ | ||||
|         migrations.RenameField( | ||||
|             model_name="taskstate", | ||||
|             old_name="page_revision", | ||||
|             new_name="revision", | ||||
|         ), | ||||
|     ] | ||||
|  | @ -3578,7 +3578,7 @@ class Task(models.Model): | |||
|         """Start this task on the provided workflow state by creating an instance of TaskState""" | ||||
|         task_state = self.get_task_state_class()(workflow_state=workflow_state) | ||||
|         task_state.status = TaskState.STATUS_IN_PROGRESS | ||||
|         task_state.page_revision = workflow_state.page.get_latest_revision() | ||||
|         task_state.revision = workflow_state.page.get_latest_revision() | ||||
|         task_state.task = self | ||||
|         task_state.save() | ||||
|         task_submitted.send( | ||||
|  | @ -3925,7 +3925,7 @@ class WorkflowState(models.Model): | |||
|         """Put a STATUS_NEEDS_CHANGES workflow state back into STATUS_IN_PROGRESS, and restart the current task""" | ||||
|         if self.status != self.STATUS_NEEDS_CHANGES: | ||||
|             raise PermissionDenied | ||||
|         revision = self.current_task_state.page_revision | ||||
|         revision = self.current_task_state.revision | ||||
|         current_task_state = self.current_task_state | ||||
|         self.current_task_state = None | ||||
|         self.status = self.STATUS_IN_PROGRESS | ||||
|  | @ -4016,7 +4016,7 @@ class WorkflowState(models.Model): | |||
|         ) | ||||
|         if getattr(settings, "WAGTAIL_WORKFLOW_REQUIRE_REAPPROVAL_ON_EDIT", False): | ||||
|             successful_task_states = successful_task_states.filter( | ||||
|                 page_revision=self.page.get_latest_revision() | ||||
|                 revision=self.page.get_latest_revision() | ||||
|             ) | ||||
| 
 | ||||
|         return successful_task_states | ||||
|  | @ -4053,7 +4053,7 @@ class WorkflowState(models.Model): | |||
|                     }, | ||||
|                 } | ||||
|             }, | ||||
|             revision=self.current_task_state.page_revision, | ||||
|             revision=self.current_task_state.revision, | ||||
|             user=user, | ||||
|         ) | ||||
| 
 | ||||
|  | @ -4073,18 +4073,18 @@ class WorkflowState(models.Model): | |||
|         workflow_approved.send(sender=self.__class__, instance=self, user=user) | ||||
| 
 | ||||
|     def copy_approved_task_states_to_revision(self, revision): | ||||
|         """This creates copies of previously approved task states with page_revision set to a different revision.""" | ||||
|         """This creates copies of previously approved task states with revision set to a different revision.""" | ||||
|         approved_states = TaskState.objects.filter( | ||||
|             workflow_state=self, status=TaskState.STATUS_APPROVED | ||||
|         ) | ||||
|         for state in approved_states: | ||||
|             state.copy(update_attrs={"page_revision": revision}) | ||||
|             state.copy(update_attrs={"revision": revision}) | ||||
| 
 | ||||
|     def revisions(self): | ||||
|         """Returns all page revisions associated with task states linked to the current workflow state""" | ||||
|         return Revision.page_revisions.filter( | ||||
|             object_id=str(self.page_id), | ||||
|             id__in=self.task_states.values_list("page_revision_id", flat=True), | ||||
|             id__in=self.task_states.values_list("revision_id", flat=True), | ||||
|         ).defer("content") | ||||
| 
 | ||||
|     def _get_applicable_task_states(self): | ||||
|  | @ -4099,7 +4099,7 @@ class WorkflowState(models.Model): | |||
|                 .values_list("id", flat=True) | ||||
|                 .first() | ||||
|             ) | ||||
|             task_states = task_states.filter(page_revision_id=latest_revision_id) | ||||
|             task_states = task_states.filter(revision_id=latest_revision_id) | ||||
|         return task_states | ||||
| 
 | ||||
|     def all_tasks_with_status(self): | ||||
|  | @ -4203,7 +4203,7 @@ class TaskStateManager(models.Manager): | |||
| 
 | ||||
| 
 | ||||
| class TaskState(models.Model): | ||||
|     """Tracks the status of a given Task for a particular page revision.""" | ||||
|     """Tracks the status of a given Task for a particular revision.""" | ||||
| 
 | ||||
|     STATUS_IN_PROGRESS = "in_progress" | ||||
|     STATUS_APPROVED = "approved" | ||||
|  | @ -4224,10 +4224,10 @@ class TaskState(models.Model): | |||
|         verbose_name=_("workflow state"), | ||||
|         related_name="task_states", | ||||
|     ) | ||||
|     page_revision = models.ForeignKey( | ||||
|     revision = models.ForeignKey( | ||||
|         "Revision", | ||||
|         on_delete=models.CASCADE, | ||||
|         verbose_name=_("page revision"), | ||||
|         verbose_name=_("revision"), | ||||
|         related_name="task_states", | ||||
|     ) | ||||
|     task = models.ForeignKey( | ||||
|  | @ -4277,11 +4277,9 @@ class TaskState(models.Model): | |||
|                 self.content_type = ContentType.objects.get_for_model(self) | ||||
| 
 | ||||
|     def __str__(self): | ||||
|         return _( | ||||
|             "Task '%(task_name)s' on Page Revision '%(revision_info)s': %(status)s" | ||||
|         ) % { | ||||
|         return _("Task '%(task_name)s' on Revision '%(revision_info)s': %(status)s") % { | ||||
|             "task_name": self.task, | ||||
|             "revision_info": self.page_revision, | ||||
|             "revision_info": self.revision, | ||||
|             "status": self.status, | ||||
|         } | ||||
| 
 | ||||
|  | @ -4298,7 +4296,7 @@ class TaskState(models.Model): | |||
|             # Cannot locate a model class for this content type. This might happen | ||||
|             # if the codebase and database are out of sync (e.g. the model exists | ||||
|             # on a different git branch and we haven't rolled back migrations before | ||||
|             # switching branches); if so, the best we can do is return the page | ||||
|             # switching branches); if so, the best we can do is return the task state | ||||
|             # unchanged. | ||||
|             return self | ||||
|         elif isinstance(self, model_class): | ||||
|  | @ -4404,13 +4402,13 @@ class TaskState(models.Model): | |||
| 
 | ||||
|     def log_state_change_action(self, user, action): | ||||
|         """Log the approval/rejection action""" | ||||
|         page = self.page_revision.as_object() | ||||
|         obj = self.revision.as_object() | ||||
|         next_task = self.workflow_state.get_next_task() | ||||
|         next_task_data = None | ||||
|         if next_task: | ||||
|             next_task_data = {"id": next_task.id, "title": next_task.name} | ||||
|         log( | ||||
|             instance=page, | ||||
|             instance=obj, | ||||
|             action="wagtail.workflow.{}".format(action), | ||||
|             user=user, | ||||
|             data={ | ||||
|  | @ -4427,7 +4425,7 @@ class TaskState(models.Model): | |||
|                 }, | ||||
|                 "comment": self.get_comment(), | ||||
|             }, | ||||
|             revision=self.page_revision, | ||||
|             revision=self.revision, | ||||
|         ) | ||||
| 
 | ||||
|     class Meta: | ||||
|  |  | |||
|  | @ -170,7 +170,7 @@ class TestWorkflows(TestCase): | |||
|         task_state = workflow_state.current_task_state | ||||
|         self.assertEqual(task_state.task, task_1) | ||||
|         self.assertEqual(task_state.status, "in_progress") | ||||
|         self.assertEqual(task_state.page_revision, homepage.get_latest_revision()) | ||||
|         self.assertEqual(task_state.revision, homepage.get_latest_revision()) | ||||
|         if settings.USE_TZ: | ||||
|             self.assertEqual( | ||||
|                 task_state.started_at, | ||||
|  | @ -231,9 +231,7 @@ class TestWorkflows(TestCase): | |||
|         ) | ||||
|         self.assertEqual(workflow_state.status, "approved") | ||||
|         page.refresh_from_db() | ||||
|         self.assertEqual( | ||||
|             page.live_revision, workflow_state.current_task_state.page_revision | ||||
|         ) | ||||
|         self.assertEqual(page.live_revision, workflow_state.current_task_state.revision) | ||||
| 
 | ||||
|     @override_settings(WAGTAIL_WORKFLOW_REQUIRE_REAPPROVAL_ON_EDIT=True) | ||||
|     def test_workflow_resets_when_new_revision_created(self): | ||||
|  |  | |||
		Ładowanie…
	
		Reference in New Issue
	
	 Sage Abdullah
						Sage Abdullah