def generate_timeline(initial_date, final_date, project_id): if initial_date or final_date or project_id: timelines = Timeline.objects.all() if initial_date: timelines = timelines.filter(created__gte=initial_date) if final_date: timelines = timelines.filter(created__lt=final_date) if project_id: timelines = timelines.filter(project__id=project_id) timelines.delete() with patch('taiga.timeline.service._add_to_object_timeline', new=custom_add_to_object_timeline): # Projects api wasn't a HistoryResourceMixin so we can't interate on the HistoryEntries in this case projects = Project.objects.order_by("created_date") history_entries = HistoryEntry.objects.order_by("created_at") if initial_date: projects = projects.filter(created_date__gte=initial_date) history_entries = history_entries.filter(created_at__gte=initial_date) if final_date: projects = projects.filter(created_date__lt=final_date) history_entries = history_entries.filter(created_at__lt=final_date) if project_id: project = Project.objects.get(id=project_id) us_keys = ['userstories.userstory:%s'%(id) for id in project.user_stories.values_list("id", flat=True)] tasks_keys = ['tasks.task:%s'%(id) for id in project.tasks.values_list("id", flat=True)] issue_keys = ['issues.issue:%s'%(id) for id in project.issues.values_list("id", flat=True)] wiki_keys = ['wiki.wikipage:%s'%(id) for id in project.wiki_pages.values_list("id", flat=True)] keys = us_keys + tasks_keys + issue_keys + wiki_keys projects = projects.filter(id=project_id) history_entries = history_entries.filter(key__in=keys) #Memberships for membership in project.memberships.exclude(user=None).exclude(user=project.owner): bulk_creator.created = membership.created_at _push_to_timelines(project, membership.user, membership, "create") for project in projects.iterator(): bulk_creator.created = project.created_date print("Project:", bulk_creator.created) extra_data = { "values_diff": {}, "user": extract_user_info(project.owner), } _push_to_timelines(project, project.owner, project, "create", extra_data=extra_data) del extra_data for historyEntry in history_entries.iterator(): print("History entry:", historyEntry.created_at) try: bulk_creator.created = historyEntry.created_at on_new_history_entry(None, historyEntry, None) except ObjectDoesNotExist as e: print("Ignoring") bulk_creator.flush()
def generate_timeline(apps, schema_editor): global created global timelime_objects with patch('taiga.timeline.service._add_to_object_timeline', new=custom_add_to_object_timeline): # Projects api wasn't a HistoryResourceMixin so we can't interate on the HistoryEntries in this case for project in Project.objects.order_by("created_date").iterator(): created = project.created_date print("Project:", created) extra_data = { "values_diff": {}, "user": extract_user_info(project.owner), } _push_to_timelines(project, project.owner, project, "create", extra_data=extra_data) Timeline.objects.bulk_create(timelime_objects, batch_size=10000) timelime_objects = [] for historyEntry in HistoryEntry.objects.order_by( "created_at").iterator(): print("History entry:", historyEntry.created_at) try: created = historyEntry.created_at on_new_history_entry(None, historyEntry, None) except ObjectDoesNotExist as e: print("Ignoring") Timeline.objects.bulk_create(timelime_objects, batch_size=10000)
def generate_timeline(apps, schema_editor): global created global timelime_objects with patch('taiga.timeline.service._add_to_object_timeline', new=custom_add_to_object_timeline): # Projects api wasn't a HistoryResourceMixin so we can't interate on the HistoryEntries in this case for project in Project.objects.order_by("created_date").iterator(): created = project.created_date print("Project:", created) extra_data = { "values_diff": {}, "user": extract_user_info(project.owner), } _push_to_timelines(project, project.owner, project, "create", extra_data=extra_data) Timeline.objects.bulk_create(timelime_objects, batch_size=10000) timelime_objects = [] for historyEntry in HistoryEntry.objects.order_by("created_at").iterator(): print("History entry:", historyEntry.created_at) try: created = historyEntry.created_at on_new_history_entry(None, historyEntry, None) except ObjectDoesNotExist as e: print("Ignoring") Timeline.objects.bulk_create(timelime_objects, batch_size=10000)
def generate_timeline(initial_date, final_date, project_id): if initial_date or final_date or project_id: timelines = Timeline.objects.all() if initial_date: timelines = timelines.filter(created__gte=initial_date) if final_date: timelines = timelines.filter(created__lt=final_date) if project_id: timelines = timelines.filter(project__id=project_id) timelines.delete() with patch('taiga.timeline.service._add_to_object_timeline', new=custom_add_to_object_timeline): # Projects api wasn't a HistoryResourceMixin so we can't interate on the HistoryEntries in this case projects = Project.objects.order_by("created_date") history_entries = HistoryEntry.objects.order_by("created_at") if initial_date: projects = projects.filter(created_date__gte=initial_date) history_entries = history_entries.filter(created_at__gte=initial_date) if final_date: projects = projects.filter(created_date__lt=final_date) history_entries = history_entries.filter(created_at__lt=final_date) if project_id: project = Project.objects.get(id=project_id) epic_keys = ['epics.epic:%s'%(id) for id in project.epics.values_list("id", flat=True)] us_keys = ['userstories.userstory:%s'%(id) for id in project.user_stories.values_list("id", flat=True)] tasks_keys = ['tasks.task:%s'%(id) for id in project.tasks.values_list("id", flat=True)] issue_keys = ['issues.issue:%s'%(id) for id in project.issues.values_list("id", flat=True)] wiki_keys = ['wiki.wikipage:%s'%(id) for id in project.wiki_pages.values_list("id", flat=True)] keys = epic_keys + us_keys + tasks_keys + issue_keys + wiki_keys projects = projects.filter(id=project_id) history_entries = history_entries.filter(key__in=keys) #Memberships for membership in project.memberships.exclude(user=None).exclude(user=project.owner): _push_to_timelines(project, membership.user, membership, "create", membership.created_at) for project in projects.iterator(): print("Project:", project) extra_data = { "values_diff": {}, "user": extract_user_info(project.owner), } _push_to_timelines(project, project.owner, project, "create", project.created_date, extra_data=extra_data) del extra_data for historyEntry in history_entries.iterator(): print("History entry:", historyEntry.created_at) try: on_new_history_entry(None, historyEntry, None) except ObjectDoesNotExist as e: print("Ignoring") bulk_creator.flush()
def generate_timeline(): with patch("taiga.timeline.service._add_to_object_timeline", new=custom_add_to_object_timeline): # Users api wasn't a HistoryResourceMixin so we can't interate on the HistoryEntries in this case users = User.objects.order_by("date_joined") for user in users.iterator(): print("User:"******"values_diff": {}, "user": extract_user_info(user)} _push_to_timelines(None, user, user, "create", user.date_joined, extra_data=extra_data) del extra_data bulk_creator.flush()
def generate_timeline(): with patch('taiga.timeline.service._add_to_object_timeline', new=custom_add_to_object_timeline): # Users api wasn't a HistoryResourceMixin so we can't interate on the HistoryEntries in this case users = User.objects.order_by("date_joined") for user in users.iterator(): print("User:"******"values_diff": {}, "user": extract_user_info(user), } _push_to_timelines(None, user, user, "create", user.date_joined, extra_data=extra_data) del extra_data bulk_creator.flush()
def generate_timeline(initial_date, final_date): if initial_date or final_date: timelines = Timeline.objects.all() if initial_date: timelines = timelines.filter(created__gte=initial_date) if final_date: timelines = timelines.filter(created__lt=final_date) timelines.delete() with patch('taiga.timeline.service._add_to_object_timeline', new=custom_add_to_object_timeline): # Projects api wasn't a HistoryResourceMixin so we can't interate on the HistoryEntries in this case projects = Project.objects.order_by("created_date") history_entries = HistoryEntry.objects.order_by("created_at") if initial_date: projects = projects.filter(created_date__gte=initial_date) history_entries = history_entries.filter( created_at__gte=initial_date) if final_date: projects = projects.filter(created_date__lt=final_date) history_entries = history_entries.filter(created_at__lt=final_date) for project in projects.iterator(): bulk_creator.created = project.created_date print("Project:", bulk_creator.created) extra_data = { "values_diff": {}, "user": extract_user_info(project.owner), } _push_to_timelines(project, project.owner, project, "create", extra_data=extra_data) del extra_data for historyEntry in history_entries.iterator(): print("History entry:", historyEntry.created_at) try: bulk_creator.created = historyEntry.created_at on_new_history_entry(None, historyEntry, None) except ObjectDoesNotExist as e: print("Ignoring")
def generate_timeline(): with patch('taiga.timeline.service._add_to_object_timeline', new=custom_add_to_object_timeline): # Projects api wasn't a HistoryResourceMixin so we can't interate on the HistoryEntries in this case for project in queryset_iterator(Project.objects.order_by("created_date")): bulk_creator.created = project.created_date print("Project:", bulk_creator.created) extra_data = { "values_diff": {}, "user": extract_user_info(project.owner), } _push_to_timelines(project, project.owner, project, "create", extra_data=extra_data) del extra_data for historyEntry in queryset_iterator(HistoryEntry.objects.order_by("created_at")): print("History entry:", historyEntry.created_at) try: bulk_creator.created = historyEntry.created_at on_new_history_entry(None, historyEntry, None) except ObjectDoesNotExist as e: print("Ignoring")
def generate_timeline(initial_date, final_date): if initial_date or final_date: timelines = Timeline.objects.all() if initial_date: timelines = timelines.filter(created__gte=initial_date) if final_date: timelines = timelines.filter(created__lt=final_date) timelines.delete() with patch('taiga.timeline.service._add_to_object_timeline', new=custom_add_to_object_timeline): # Projects api wasn't a HistoryResourceMixin so we can't interate on the HistoryEntries in this case projects = Project.objects.order_by("created_date") history_entries = HistoryEntry.objects.order_by("created_at") if initial_date: projects = projects.filter(created_date__gte=initial_date) history_entries = history_entries.filter(created_at__gte=initial_date) if final_date: projects = projects.filter(created_date__lt=final_date) history_entries = history_entries.filter(created_at__lt=final_date) for project in projects.iterator(): bulk_creator.created = project.created_date print("Project:", bulk_creator.created) extra_data = { "values_diff": {}, "user": extract_user_info(project.owner), } _push_to_timelines(project, project.owner, project, "create", extra_data=extra_data) del extra_data for historyEntry in history_entries.iterator(): print("History entry:", historyEntry.created_at) try: bulk_creator.created = historyEntry.created_at on_new_history_entry(None, historyEntry, None) except ObjectDoesNotExist as e: print("Ignoring")
event_type=event_type_key, project=None, data=impl(instance, extra_data=extra_data), data_content_type = ContentType.objects.get_for_model(instance.__class__), created=created_datetime, )) def generate_timeline(): with patch('taiga.timeline.service._add_to_object_timeline', new=custom_add_to_object_timeline): # Users api wasn't a HistoryResourceMixin so we can't interate on the HistoryEntries in this case users = get_user_model().objects.order_by("date_joined") for user in users.iterator(): print("User:"******"values_diff": {}, "user": extract_user_info(user), } _push_to_timelines(None, user, user, "create", user.date_joined, extra_data=extra_data) del extra_data bulk_creator.flush() class Command(BaseCommand): help = 'Regenerate project timeline' @override_settings(DEBUG=False) def handle(self, *args, **options): generate_timeline()