コード例 #1
0
ファイル: history.py プロジェクト: wangjian2254/FTknowledge
    def _create_log_entry(self, action):
        if threadlocals.get_current_user().is_anonymous():
            user = User.objects.get(username='******')
        else:
            user = threadlocals.get_current_user()
        key = (self.__class__._meta.app_label,
               self.__class__._meta.object_name, self.pk)
        history = threadlocals.get_log_entry(key)
        if not history:
            history = LogEntry(
                user=user,
                object_id=self.pk,
                action_flag=action,
                content_type=ContentType.objects.get_for_model(self))
            threadlocals.set_log_entry(key, history)
        l = getattr(self, '_field_change_message_list', []) + getattr(
            self, '_field_m2m_change_message_list', [])
        if not l:
            return
        history.change_message = '\n'.join(l)
        try:
            history.object_repr = unicode(self)[:200]
        except Exception:
            history.object_repr = "(unknown)"

        history.save()
コード例 #2
0
ファイル: history.py プロジェクト: fewf/django-beautils
 def _create_log_entry(self, action):
     if threadlocals.get_current_user() is None:
         return
         raise Exception("Please enable ThreadsLocal middleware")
     if threadlocals.get_current_user().is_anonymous():
         user = User.objects.get(
             pk=0)  # feature: User with pk=0 supposed to be anonymous user
     else:
         user = threadlocals.get_current_user()
     if SAVE_THROUGH_ADMIN:
         history = LogEntry.objects.get(
             user=user,
             object_id=self.pk,
             action_flag=action,
             content_type=ContentType.objects.get_for_model(self)).latest()
     else:
         history = LogEntry(
             user=user,
             object_id=self.pk,
             action_flag=action,
             content_type=ContentType.objects.get_for_model(self))
         try:
             history.object_repr = repr(self)
         except Exception:
             history.object_repr = "(unknown)"
         history.save()
     return history
コード例 #3
0
def save_form(request):
    try:
        from django.contrib.admin.models import LogEntry
        from django.contrib.contenttypes.models import ContentType
        matriculation_type = ContentType.objects.get(app_label='school',
                                                     model='matriculation')
        student_id = int(request.POST.get('student_id'))
        grade_section_id = int(request.POST.get('grade_section'))
        teaching_year = int(request.POST.get('teaching_year'))
        status = int(request.POST.get('status'))

        matriculation_exist = Matriculation.objects.filter(
            student_id=student_id,
            teaching_year=teaching_year,
        ).first()

        django_log_entry = LogEntry()
        if matriculation_exist:
            matriculation_exist.student_id = student_id
            matriculation_exist.grade_section_id = grade_section_id
            matriculation_exist.status = status
            matriculation_exist.save()

            django_log_entry.action_flag = 2
            key_message = 'changed'
            django_log_entry.object_id = matriculation_exist.id
            django_log_entry.object_repr = matriculation_exist.__str__()
            change_message = {
                key_message: {
                    'fields': ['estudiante', 'grado y sección', 'estado']
                }
            }

            message = 'Matrícula actualizada exitosamente'
        else:
            matriculation = Matriculation()
            matriculation.student_id = student_id
            matriculation.grade_section_id = grade_section_id
            matriculation.status = status
            matriculation.save()

            django_log_entry.action_flag = 1
            key_message = 'added'
            django_log_entry.object_id = matriculation.id
            django_log_entry.object_repr = matriculation.__str__()
            change_message = {key_message: {}}

            message = 'Matrícula guardada exitosamente'

        django_log_entry.change_message = json.dumps([change_message])
        django_log_entry.content_type_id = matriculation_type.id
        django_log_entry.user_id = request.user.id

        django_log_entry.save()

        response = {'message': message, 'status': True}
    except:
        response = {'status': False, 'message': 'Error al guardar'}

    return JsonResponse(response)
コード例 #4
0
ファイル: history.py プロジェクト: cattias/cannesalair
 def _create_log_entry(self, action):
     if not threadlocals.get_current_user() or threadlocals.get_current_user().is_anonymous():
         user = User.objects.get(username="******")
     else:
         user = threadlocals.get_current_user()
     history = LogEntry(
         user=user, object_id=self.pk, action_flag=action, content_type=ContentType.objects.get_for_model(self)
     )
     try:
         history.object_repr = repr(self)
     except Exception:
         history.object_repr = "(unknown)"
     history.save()
コード例 #5
0
ファイル: history.py プロジェクト: wangjian2254/CalendarOA
    def _create_log_entry(self, action):
        if threadlocals.get_current_user().is_anonymous():
            user = User.objects.get(username='******')
        else:
            user = threadlocals.get_current_user()
        key = (self.__class__._meta.app_label,self.__class__._meta.object_name,self.pk)
        history = threadlocals.get_log_entry(key)
        if not history:
            history = LogEntry(user=user, object_id = self.pk, action_flag = action,
                            content_type = ContentType.objects.get_for_model(self))
            threadlocals.set_log_entry(key,history)
        l = getattr(self,'_field_change_message_list',[]) + getattr(self,'_field_m2m_change_message_list',[])
        history.change_message = '\n'.join(l)
        try:
            history.object_repr = unicode(self)
        except Exception:
            history.object_repr = "(unknown)"


        history.save()
コード例 #6
0
ファイル: history.py プロジェクト: buriy/django-beautils
 def _create_log_entry(self, action):
     if threadlocals.get_current_user() is None:
         return
         raise Exception("Please enable ThreadsLocal middleware")
     if threadlocals.get_current_user().is_anonymous():
         user = User.objects.get(pk=0) # feature: User with pk=0 supposed to be anonymous user
     else:
         user = threadlocals.get_current_user()
     if SAVE_THROUGH_ADMIN: 
         history = LogEntry.objects.get(user=user, object_id = self.pk, action_flag = action,
                         content_type = ContentType.objects.get_for_model(self)).latest()
     else:
         history = LogEntry(user=user, object_id = self.pk, action_flag = action,
                             content_type = ContentType.objects.get_for_model(self))
         try:
             history.object_repr = repr(self)
         except Exception:
             history.object_repr = "(unknown)"
         history.save()
     return history
コード例 #7
0
ファイル: modelform.py プロジェクト: yourlabs/crudlfap
def log(user, flag, message, obj=None, dt=None):
    from django.contrib.admin.models import ADDITION, CHANGE, DELETION
    flags = dict(create=ADDITION, update=CHANGE, delete=DELETION)
    flag = flags.get(flag, flag)
    if not isinstance(message, str):
        message = json.dumps(message)
    logentry = LogEntry(
        user_id=user.pk,
        action_flag=flag,
        change_message=message,
    )
    if obj:
        logentry.content_type_id = ContentType.objects.get_for_model(obj).pk
        logentry.object_id = obj.pk
        logentry.object_repr = str(obj)[:200]
    if dt:
        logentry.action_time = dt
    logentry.save()
    return logentry
コード例 #8
0
ファイル: admin.py プロジェクト: balmaster/djbookru
    def log_change(self, request, object, message, old_object=None):
        """
        Log that an object has been successfully changed.

        The default implementation creates an admin LogEntry object.
        """
        entry = LogEntry()
        entry.user = request.user
        entry.content_type = ContentType.objects.get_for_model(object)
        entry.object_id = smart_unicode(object.pk)
        entry.object_repr = force_unicode(object)[:200]
        entry.action_flag = CHANGE
        entry.change_message = message
        entry.save()
        
        if old_object:
            entry_extend = LogEntryExtend()
            entry_extend.entry = entry
            entry_extend.data = old_object
            entry_extend.save()
コード例 #9
0
    def log_change(self, request, object, message, old_object=None):
        """
        Log that an object has been successfully changed.

        The default implementation creates an admin LogEntry object.
        """
        entry = LogEntry()
        entry.user = request.user
        entry.content_type = ContentType.objects.get_for_model(object)
        entry.object_id = smart_unicode(object.pk)
        entry.object_repr = force_unicode(object)[:200]
        entry.action_flag = CHANGE
        entry.change_message = message
        entry.save()

        if old_object:
            entry_extend = models.LogEntryExtend()
            entry_extend.entry = entry
            entry_extend.data = old_object
            entry_extend.save()
コード例 #10
0
def control_edition_note(list_control_fields_edited,
                         note,
                         teacher_id=None,
                         supervisor_id=None):
    from .models import NoteControlEdition
    from django.contrib.admin.models import LogEntry
    from django.contrib.contenttypes.models import ContentType
    import json
    note_type = ContentType.objects.get(app_label='school', model='note')

    fields = []
    for register_edited in list_control_fields_edited:
        note_edited_control = NoteControlEdition()
        note_edited_control.note_id = note.id
        note_edited_control.edit_field = register_edited.get('field_name')
        note_edited_control.value_edit_field = register_edited.get('value')
        note_edited_control.supervisor_id = supervisor_id
        note_edited_control.save()

        key = fields_note_spanish[register_edited['field_name']]
        fields.append('{} - {}'.format(key, register_edited['value']))

    flag_add = NoteControlEdition.objects.filter(note_id=note.id).count()
    flag_add = 1 if flag_add <= 1 else 2
    django_log_entry = LogEntry()
    django_log_entry.object_id = note.id
    django_log_entry.object_repr = note.__str__()
    django_log_entry.action_flag = flag_add

    key_message = 'added' if flag_add <= 1 else 'changed'
    if key_message == 'added':
        change_message = {key_message: {}}
    else:
        change_message = {key_message: {'fields': fields}}

    django_log_entry.change_message = json.dumps([change_message])
    django_log_entry.content_type_id = note_type.id
    django_log_entry.user_id = supervisor_id or teacher_id

    django_log_entry.save()