• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

Python reversion.get_unique_for_object函数代码示例

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

本文整理汇总了Python中reversion.get_unique_for_object函数的典型用法代码示例。如果您正苦于以下问题:Python get_unique_for_object函数的具体用法?Python get_unique_for_object怎么用?Python get_unique_for_object使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。



在下文中一共展示了get_unique_for_object函数的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Python代码示例。

示例1: reversionItemBase

def reversionItemBase(request, id_item, id_fase, id_version):
    """
    *Funcion para realizar la reversión de un ítem. Una reversión consiste en recuperar todos los
    atributos definidos y la relación establecida para la versión a la cual se esta reversionando el item*

    :param request: HttpRequest necesario para establecer la reversión, es la solicitud de la acción.
    :param id_fase: Identificador de la fase dentro del proyecto a la cual pertenece el ítem.
    :param id_item: Identificador del Item al cual se desea realizar una reversion.
    :param id_version: Identificador de la versión a la cual se desea realizar una reversion.
    :param args: Argumentos para el modelo ``Item``.
    :param kwargs: Keyword Arguments para la el modelo ``Item``.
    :return: El ítem es reversionado exitosamente.
    """
    fase = Fase.objects.get(pk=id_fase)
    item = ItemBase.objects.get(pk=id_item)
    tipoitem = item.tipoitem
    atributos = Atributo.objects.filter(tipoDeItem=tipoitem)
    id_new_version = int('0'+id_version)
    campos = []
    lista_version = reversion.get_unique_for_object(item)

    relacion = ItemRelacion.objects.filter(itemHijo=item)

    if relacion:
        versionRelacion = reversion.get_for_object(relacion.get())
        for version_relacion in versionRelacion:
            if version_relacion.revision.id == id_new_version:
                version_relacion.revert()

        ItemPadre = ItemRelacion.objects.get(itemHijo=item).itemPadre
        padre = ItemBase.objects.get(nombre=ItemPadre)
        if padre.estado == 'DDB':
            print 'Padre en baja'
            relacion[0].itemPadre = None
            relacion[0].save()

    campos.extend(CampoTextoLargo.objects.filter(atributo__in=atributos, item=item))
    campos.extend(CampoTextoCorto.objects.filter(atributo__in=atributos, item=item))
    campos.extend(CampoNumero.objects.filter(atributo__in=atributos, item=item))
    campos.extend(CampoFile.objects.filter(atributo__in=atributos, item=item))
    campos.extend(CampoImagen.objects.filter(atributo__in=atributos, item=item))

    for campo in campos:
        versionAttr = reversion.get_unique_for_object(campo)
        for version_attr in versionAttr:
            if version_attr.revision.id == id_new_version:
                version_attr.revert()


    for version in lista_version:
        if version.revision.id == id_new_version:
            version.revert()
            error = 0
            mensajes = []
            mensajes.append('Item: ' + item.nombre + '. Reversionado correctamente.')
            request.session['messages'] = mensajes
            request.session['error'] = error
            return HttpResponseRedirect('/workphase/' + str(fase.id))
开发者ID:Tzesar,项目名称:is2,代码行数:58,代码来源:views.py


示例2: relacionarItemBase

def relacionarItemBase(request, id_item_hijo, id_item_padre, id_fase):
    """
    *Funcion para establecer relaciones entre los items. Se pueden establecer relaciones del tipo Padre-Hijo
    cuando los ítems pertenecen a la misma fase y del tipo Antecesor-Sucesor cuando los ítem pertenecen a
    fases consecutivas.*

    :param request: HttpRequest necesario para establecer las relaciones entre ítems, es la solicitud de la acción.
    :param id_item_hijo: Identificador del ítem que cumplirá con el rol de Hijo/Sucesor en la relación.
    :param id_item_padre: Identificador del ítem que cumplirá con el rol de Padre/Antecesor en la relación.
    :param args: Argumentos para el modelo ``Item``.
    :param kwargs: Keyword Arguments para la el modelo ``Item``.
    :return: Relación establecida correctamente
    """
    item_hijo = ItemBase.objects.get(pk=id_item_hijo)
    item_padre = ItemBase.objects.get(pk=id_item_padre)
    mensajes = []

    try:
        ItemRelacion.objects.get(itemHijo=item_hijo)
    except:
        relacion = ItemRelacion()
        relacion.itemHijo = item_hijo
        relacion.itemPadre = item_padre
        relacion.save()
        item_hijo.fecha_modificacion = timezone.now()
        item_hijo.usuario_modificacion = request.user
        item_hijo.version = reversion.get_unique_for_object(item_hijo).__len__() + 1
        item_hijo.save()
        mensaje = 'Relacion establecida entre ' + item_hijo.nombre + ' y ' + item_padre.nombre + '.'
        mensajes.append(mensaje)
        error = 0
        request.session['messages'] = mensajes
        request.session['error'] = error
        return HttpResponseRedirect('/workphase/' + str(id_fase))

    relacion = ItemRelacion.objects.get(itemHijo=item_hijo)
    padre = relacion.itemPadre
    if padre == item_padre:
        mensaje = 'El item ' + item_hijo.nombre + ' ya cuenta con una relacion hacia el item especificado.'
        duplicado = 1
        mensajes.append(mensaje)
        request.session['messages'] = mensajes
        request.session['error'] = duplicado
        return HttpResponseRedirect('/workphase/' + str(id_fase))
    else:
        relacion.itemPadre = item_padre
        relacion.save()
        item_hijo.version = reversion.get_unique_for_object(item_hijo).__len__() + 1
        item_hijo.save()

        mensaje = 'Relacion establecida entre ' + item_hijo.nombre + ' y ' + item_padre.nombre + '.'
        error = 0
        mensajes.append(mensaje)
        request.session['messages'] = mensajes
        request.session['error'] = error
        return HttpResponseRedirect('/workphase/' + str(id_fase))
开发者ID:Tzesar,项目名称:is2,代码行数:56,代码来源:views.py


示例3: testCanGetUniqueForObject

 def testCanGetUniqueForObject(self):
     with reversion.create_revision():
         self.test11.save()
         self.test21.save()
     # Test a model with an int pk.
     self.assertEqual(reversion.get_for_object(self.test11).count(), 3)
     self.assertEqual(len(reversion.get_unique_for_object(self.test11)), 2)
     # Test a model with a str pk.
     self.assertEqual(reversion.get_for_object(self.test21).count(), 3)
     self.assertEqual(len(reversion.get_unique_for_object(self.test21)), 2)
开发者ID:larssos,项目名称:django-reversion,代码行数:10,代码来源:tests.py


示例4: form_valid

 def form_valid(self, form):
     version_list = reversion.get_unique_for_object(self.object)
     if version_list:
         version = version_list[0]
         # get difference between last version and new version
         diff = {}
         for k,v in version.field_dict.iteritems():
             if v not in form.cleaned_data.values():
                 if k != u"id":
                     diff[k] = form.cleaned_data[k]
         # get the help_text of the field using name
         for k,v in diff.items():
             for field in Passport._meta.fields:
                 if field.name == k:
                     diff[smart_text(field.help_text)] = v
                     del diff[k]
         with reversion.create_revision():
             form.save()
             changed = u"Изменено: "
             for k, v in diff.items():
                 changed += u" %s -> %s | " % (k, v)
             reversion.set_comment(changed)
     else:
         with reversion.create_revision():
             form.save()
         
     return super(PassportUpdateView, self).form_valid(form)
开发者ID:zionist,项目名称:orphan_list,代码行数:27,代码来源:passport.py


示例5: iter_object_with_version

    def iter_object_with_version(self, model_cls):
        qs = model_cls.objects.all()

        for obj in qs:
            revs = get_unique_for_object(obj)
            for rev in revs:
                yield obj, rev
开发者ID:yamila-moreno,项目名称:taiga-back,代码行数:7,代码来源:migrate_history.py


示例6: test_create_userstory_from_issue_by_membership

    def test_create_userstory_from_issue_by_membership(self):
        issue = create_issue(1, self.user2, self.project1, self.milestone1)
        data = {
            "subject": "Test UserStory creation from issue",
            "description": "A Test UserStory example description",
            "project": self.project1.id,
            "milestone": self.milestone1.id,
            "status": self.project1.us_statuses.all()[1].id,
            "generated_from_issue": issue.id,
            "issue_comment": "This is a test example",
            "generated_from_issue": issue.id
        }

        self.assertEqual(UserStory.objects.all().count(), 4)
        self.assertEqual(len(mail.outbox), 0)
        response = self.client.login(username=self.user2.username,
                                     password=self.user2.username)
        self.assertTrue(response)
        response = self.client.post(
            reverse("userstories-list"),
            json.dumps(data),
            content_type="application/json")
        self.assertEqual(response.status_code, 201)
        self.assertEqual(UserStory.objects.all().count(), 5)
        self.assertEqual(len(mail.outbox), 1)

        self.assertEqual(response.data["origin_issue"]["subject"], issue.subject)
        issue_historical = reversion.get_unique_for_object(issue)
        self.assertTrue(data["subject"] in issue_historical[0].revision.comment)

        self.client.logout()
开发者ID:niwinz,项目名称:taiga-back,代码行数:31,代码来源:tests_api.py


示例7: page_change

def page_change(request, slug, version_id):
    try:
        version_id = abs(int(version_id))
    except TypeError:
        version_id = 0

    page = Page.objects.get(slug=slug)
    version_list = reversion.get_unique_for_object(page)

    try:
        if version_id + 1 >= len(version_list):
            compare = ''
        else:
            compare = version_list[version_id + 1].field_dict['content']

        html = reversion_compare.helpers.html_diff(compare,
                                                   version_list[version_id].field_dict['content'])
    except IndexError:
        html = ''

    return JsonResponse({
                  'slug': slug,
                  'page_title': slug.replace('_', ' '),
                  'html': html,
                  })
开发者ID:RadioRevolt,项目名称:dokuspokus,代码行数:25,代码来源:views.py


示例8: page_history

def page_history(request, slug):
    link_groups = LinkGroup.objects.all()
    page = Page.objects.get(slug=slug)
    version_list = reversion.get_unique_for_object(page)

    changelog = list()
    for i in range(len(version_list)):
        if i < len(version_list) - 1:
            diff = len(version_list[i].field_dict['content'].replace('\n', '').replace('\r', '')) - len(version_list[i+1].field_dict['content'].replace('\n', '').replace('\r', ''))
            if diff < 0:
                diff_text = '-{} characters'.format(abs(diff))
            else:
                diff_text = '+{} characters'.format(diff)
        else:
            diff_text = '+{} characters'.format(len(version_list[i].field_dict['content'].replace('\n', '').replace('\r', '')))
        changelog.append({
                         'id': version_list[i].revision.id,
                         'user': version_list[i].revision.user,
                         'date': version_list[i].revision.date_created,
                         'diff': diff_text
                         })

    return render(request, 'page_history.html', {
                  'page': page,
                  'slug': slug,
                  'changelog': changelog,
                  'link_groups': link_groups,
                  })
开发者ID:RadioRevolt,项目名称:dokuspokus,代码行数:28,代码来源:views.py


示例9: save

    def save(self, *args, **kwargs):
        author = None
        if 'author' in kwargs.keys():
            author = kwargs.pop('author')

        if 'at' in kwargs.keys():
            at = kwargs.pop('at')
        else:
            at = timezone.now()

        create_revision = False

        try:
            last_version = reversion.get_unique_for_object(self)[0].field_dict
        except (IndexError, AttributeError, TypeError):
            create_revision = True
            last_version = {}

        for field in ('role', 'location', 'is_active'):
            if field == 'is_active':
                current_value = getattr(self, field, False)
            else:
                current_value = getattr(getattr(self, field), 'slug')
            if last_version.get(field, current_value) != current_value:
                create_revision = True
                break

        if create_revision:
            self.access_since = at
            with reversion.create_revision():
                super(Provider, self).save(*args, **kwargs)
                reversion.set_user(author)
        else:
            super(Provider, self).save(*args, **kwargs)
开发者ID:yeleman,项目名称:snisi,代码行数:34,代码来源:Providers.py


示例10: get_context_data

 def get_context_data(self, **kwargs):
     context = super(ProgramReportEditView, self).get_context_data(**kwargs)
     context['page_title'] = self.page_title
     context['period'] = self.object.summary()['period_name']
     context['program'] = self.object.program.code
     context['reporter'] = self.object.reporter
     context['versions'] = reversion.get_unique_for_object(self.object)
     return context
开发者ID:system7-open-source,项目名称:imamd,代码行数:8,代码来源:views.py


示例11: get_context_data

 def get_context_data(self, **kwargs):
     context = super().get_context_data(**kwargs)
     version_list = reversion.get_unique_for_object(self.object)
     context.update(
         {
             'version_list': version_list
         }
     )
     return context
开发者ID:luzfcb,项目名称:versionamento_testes,代码行数:9,代码来源:views.py


示例12: getFieldHistory

 def getFieldHistory(self, keys):
     """
     FIXME: work in progress.. just notes right now..
     """
     fieldID = keys.get("id")
     attributeMappingObj = get_object_or_404(AttributeMapping, id=attrID)
     serverObj = attributeMappingObj.server
     history = reversion.get_unique_for_object(serverObj)
     historyList = sorted([(h.revision.date_created, h.field_dict) for h in history])
     return historyList
开发者ID:xeor,项目名称:fecto,代码行数:10,代码来源:server_field.py


示例13: get_revisions

def get_revisions(request, pk):
    user = request.user.groups.filter(name='Moderator')
    if user:
        joke = Joke.objects.get(pk=pk)
        version_list = reversion.get_unique_for_object(joke)
        versions = []
        for version in version_list:
            date = version.revision.date_created
            body = version.field_dict['body']
            versions.append({'date': date, 'body': body})
        return JsonResponse(versions, safe=False)
    else:
        return HttpResponse('User not authorised to get revisions', status=401)
开发者ID:jchmura,项目名称:suchary-django,代码行数:13,代码来源:views.py


示例14: history

 def history(self):
     version_list = reversion.get_unique_for_object(self)
     updates = []
     for version in reversed(version_list):
         vdata = version.field_dict
         inside_date = vdata.get('access_since')
         updates.append({
             'is_active': vdata.get('is_active'),
             'role': Role.get_or_none(vdata.get('role')),
             'location': Entity.get_or_none(vdata.get('location')),
             'from': vdata.get('access_since'),
             # TODO: fix end date of access
             'to': None,
             'access': self.get_access(at=inside_date),
             'name': self.name(at=inside_date)
         })
     return updates
开发者ID:yeleman,项目名称:snisi,代码行数:17,代码来源:Providers.py


示例15: changeItem

def changeItem(request, id_item):
    """
        *Vista para la modificacion de una fase dentro del sistema.*
        *Opción válida para usuarios con los roles correspondientes.*

        :param request: HttpRequest necesario para modificar la fase, es la solicitud de la acción.
        :param id_fase: Identificador de la fase dentro del sistema la cual se desea modificar.
        :param args: Argumentos para el modelo ``Fase``.
        :param kwargs: Keyword Arguments para la el modelo ``Fase``.
        :return: Proporciona la pagina ``changephase.html`` con el formulario correspondiente.
                 Modifica la fase especifica y luego regresa al menu principal

    """
    mensajes = []
    items = ItemBase.objects.filter(pk=id_item)
    if items:
        print 'Inicio de Proceso de Modificacion'
    else:
        return

    item = ItemBase.objects.get(pk=id_item)
    tipoItem = item.tipoitem
    phase = tipoItem.fase
    project = phase.proyecto

    if request.method == 'POST':
        form = itemForm(request.POST, instance=item)
        form.fields['tipoitem'].queryset = TipoItem.objects.filter(fase=phase.id)
        if form.is_valid():
            item = form.save(commit=False)
            item.fecha_modificacion = timezone.now()
            item.usuario_modificacion = request.user
            item.version = reversion.get_unique_for_object(item).__len__() + 1
            item.save()

            message = 'Modificaciones concluidas con exito en el Item: ' + item.nombre
            error = 0
            mensajes.append(message)
            request.session['messages'] = mensajes
            request.session['error'] = error
            return HttpResponseRedirect('/workphase/' + str(phase.id))
    else:
        form = itemForm(instance=item)
        form.fields['tipoitem'].queryset = TipoItem.objects.filter(fase=phase.id)
    return render(request, 'item/changeitem.html', {'form': form, 'item': item, 'phase': phase, 'project': project,
                                                    'tiposItem': tipoItem, 'user': request.user}, )
开发者ID:Tzesar,项目名称:is2,代码行数:46,代码来源:views.py


示例16: note

def note(request, note_id):
    o = {}
    o['note'] = get_object_or_404(Note, id=note_id)
    if request.method == 'POST':
        if not request.user.is_authenticated():
            return HttpResponseForbidden()
        form = main_forms.NoteSectionForm(request.POST)
        user = request.user
        if form.is_valid():

            # Quick fix with checking if a document field is blank: wymeditor by
            # default posts '<br/>'
            if not (request.POST.get('document') or
                    len(request.POST.get('content')) > 6):
                messages.add_message(
                    request, messages.ERROR,
                    'Enter a value for one or both of the fields "Content" and "Description"')
                return HttpResponseRedirect(request.path)

            new_section = NoteSection.objects.create(
                creator=user, last_updater=user, note=o['note'])
            if len(request.POST.get('content')) > 6:
                new_section.content = request.POST.get('content')
            if request.POST.get('document'):
                new_section.document = get_object_or_404(
                    Document, id=request.POST.get('document'))
            new_section.save()

            messages.add_message(
                request,
                messages.SUCCESS,
                'Added section to %s' % o['note'])
            return HttpResponseRedirect(request.path)
    if request.user.is_authenticated():
        user_profile = request.user.get_profile()
        o['affiliated'] = len([p for p in o['note'].get_project_affiliation() if
                               user_profile.get_project_role(p) is not None]) > 0
        o['add_section_form'] = main_forms.NoteSectionForm()
    o['history'] = get_unique_for_object(o['note'])
    o['topics'] = [ ta.topic for ta in o['note'].topics.all() ]
    o['cites'] = _sort_citations(o['note'])
    return render_to_response(
        'note.html', o, context_instance=RequestContext(request))
开发者ID:brocktopus,项目名称:editorsnotes,代码行数:43,代码来源:views.py


示例17: historialItemBase

def historialItemBase(request, id_fase, id_item):
    """
    *Funcion para visualizar el historial de versiones de los ítems. *
    Obs. Cada modificación realizada en el ítem es una nueva versión del ítem.

    :param request: HttpRequest necesario para visualizar las versiones de un ítem, es la solicitud de la acción.
    :param id_fase: Identificador de la fase dentro del proyecto a la cual pertenece el ítem.
    :param id_item: Identificador del Item al cual se esta consultando su historial de versiones
    :param args: Argumentos para el modelo ``Item``.
    :param kwargs: Keyword Arguments para la el modelo ``Item``.
    :return: Regresa una lista de todas las versiones del ítem.
    """

    usuario = request.user
    fase = Fase.objects.get(pk=id_fase)
    proyecto = fase.proyecto

    item = ItemBase.objects.get(pk=id_item)
    lista_versiones = reversion.get_unique_for_object(item)

    return render(request, 'item/historialitem.html', {'lista_versiones': lista_versiones, 'item': item,
                                              'proyecto': proyecto, 'fase': fase, 'user': usuario}, )
开发者ID:Tzesar,项目名称:is2,代码行数:22,代码来源:views.py


示例18: note

def note(request, note_id, project_slug):
    o = {}
    qs = Note.objects\
            .select_related('license', 'project__default_license')\
            .prefetch_related('related_topics')
    note = get_object_or_404(qs, id=note_id, project__slug=project_slug)

    if note.is_private:
        can_view = (
            request.user.is_authenticated() and
            request.user.has_project_perm(note.project, 'main.view_private_note'))
        if not can_view:
            raise PermissionDenied()

    o['breadcrumb'] = (
        (note.project.name, note.project.get_absolute_url()),
        ("Notes", reverse('all_notes_view',
                          kwargs={'project_slug': note.project.slug})),
        (note.title, None),
    )

    o['note'] = note
    o['license'] = note.license or note.project.default_license
    o['history'] = reversion.get_unique_for_object(note)
    o['topics'] = [ta.topic for ta in o['note'].related_topics.all()]
    o['sections'] = note.sections\
            .order_by('ordering', 'note_section_id')\
            .all()\
            .select_subclasses()\
            .select_related('citationns__document__project',
                            'notereferencens__note_reference__project')
    o['can_edit'] = (
        request.user.is_authenticated() and
        request.user.has_project_perm(o['note'].project, 'main.change_note'))


    return render_to_response(
        'note.html', o, context_instance=RequestContext(request))
开发者ID:GregePorter,项目名称:editorsnotes,代码行数:38,代码来源:notes.py


示例19: nr_of_versions

 def nr_of_versions(self):
     version_list = reversion.get_unique_for_object(self)
     return len(version_list)
开发者ID:Curious72,项目名称:django-project,代码行数:3,代码来源:mixins.py


示例20: get_object_old_fields

 def get_object_old_fields(self, obj):
     versions = reversion.get_unique_for_object(obj.object)
     try:
         return versions[versions.index(obj) + 1].field_dict
     except IndexError:
         return {}
开发者ID:niwinz,项目名称:taiga-back,代码行数:6,代码来源:serializers.py



注:本文中的reversion.get_unique_for_object函数示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
Python reversion.is_registered函数代码示例发布时间:2022-05-26
下一篇:
Python reversion.get_registered_models函数代码示例发布时间:2022-05-26
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap