예제 #1
0
파일: views.py 프로젝트: alejo8591/maker
def queue_view(request, queue_id, response_format='html'):
    "Queue view"
    
    queue = get_object_or_404(TicketQueue, pk=queue_id)
    if not request.user.get_profile().has_permission(queue):
        return user_denied(request, message="You don't have access to this Queue")
    
    query = Q(queue=queue)
    if request.GET:
        if 'status' in request.GET and request.GET['status']:
            query = query & _get_filter_query(request.GET)
        else:
            query = query & Q(status__hidden=False) & _get_filter_query(request.GET)
    else:
        query = query & Q(status__hidden=False)
    tickets = Object.filter_by_request(request, Ticket.objects.filter(query))
    
    filters = FilterForm(request.user.get_profile(), 'queue', request.GET)
    subqueues = Object.filter_by_request(request, TicketQueue.objects.filter(parent=queue))
    
    context = _get_default_context(request)
    context.update({'queue': queue, 
                    'subqueues': subqueues,
                    'filters': filters,
                    'tickets': tickets})
    
    return render_to_response('services/queue_view', context,
                              context_instance=RequestContext(request), response_format=response_format)
예제 #2
0
파일: views.py 프로젝트: alejo8591/maker
def queue_delete(request, queue_id, response_format='html'):
    "Queue delete"
    
    queue = get_object_or_404(TicketQueue, pk=queue_id)
    if not request.user.get_profile().has_permission(queue, mode='w'):
        return user_denied(request, message="You don't have access to this Queue")
    
    if request.POST:
        if 'delete' in request.POST:
            if 'trash' in request.POST:
                queue.trash = True
                queue.save()
            else:
                queue.delete()
            return HttpResponseRedirect(reverse('services_settings_view'))
        elif 'cancel' in request.POST:
            return HttpResponseRedirect(reverse('services_queue_view', args=[queue.id]))
    
    query = Q(queue=queue) & Q(status__hidden=False)
    tickets = Object.filter_by_request(request, Ticket.objects.filter(query))
    subqueues = Object.filter_by_request(request, TicketQueue.objects.filter(parent=queue))
    
    context = _get_default_context(request)
    context.update({'queue': queue, 
                    'subqueues': subqueues, 
                    'tickets': tickets})
    
    return render_to_response('services/queue_delete', context,
                              context_instance=RequestContext(request), response_format=response_format)
예제 #3
0
파일: views.py 프로젝트: alejo8591/maker
def task_delete(request, task_id, response_format='html'):
    "Task delete"

    task = get_object_or_404(Task, pk=task_id)
    if not request.user.get_profile().has_permission(task, mode='w'):
        return user_denied(request, message="You don't have access to this Task")

    if request.POST:
        if 'delete' in request.POST:
            if 'trash' in request.POST:
                task.trash = True
                task.save()
            else:
                task.delete()
            return HttpResponseRedirect(reverse('projects_index'))
        elif 'cancel' in request.POST:
            return HttpResponseRedirect(reverse('projects_task_view', args=[task.id]))

    subtasks = Object.filter_by_request(request, Task.objects.filter(parent=task))
    time_slots = Object.filter_by_request(request, TaskTimeSlot.objects.filter(task=task))

    context = _get_default_context(request)
    context.update({'task': task, 
                    'subtasks': subtasks,
                    'time_slots': time_slots})
    
    return render_to_response('projects/task_delete', context,
                               context_instance=RequestContext(request), response_format=response_format)
예제 #4
0
파일: views.py 프로젝트: alejo8591/maker
def task_time_slot_add(request, task_id, response_format='html'):
    "Time slot add to preselected task"
    
    task = get_object_or_404(Task, pk=task_id)
    if not request.user.get_profile().has_permission(task, mode='x'):
        return user_denied(request, message="You don't have access to this Task")
    
    if request.POST:
        task_time_slot = TaskTimeSlot(task=task, time_to=datetime.now(), user=request.user.get_profile())
        form = TaskTimeSlotForm(request.user.get_profile(), task_id, request.POST, instance=task_time_slot)
        if 'cancel' in request.POST:
            return HttpResponseRedirect(reverse('projects_task_view', args=[task.id]))
        elif form.is_valid():
            task_time_slot = form.save()
            task_time_slot.set_user_from_request(request)
            return HttpResponseRedirect(reverse('projects_task_view', args=[task.id]))
    else:
        form = TaskTimeSlotForm(request.user.get_profile(), task_id)
    
    subtasks = Object.filter_by_request(request, Task.objects.filter(parent=task))
    time_slots = Object.filter_by_request(request, TaskTimeSlot.objects.filter(task=task))

    context = _get_default_context(request)
    context.update({'form': form,
                    'task': task,
                    'subtasks': subtasks,
                    'time_slots': time_slots})
    
    return render_to_response('projects/task_time_add', context,
                               context_instance=RequestContext(request), response_format=response_format)  
예제 #5
0
파일: events.py 프로젝트: alejo8591/maker
def get_events(request):
    "Return a list of EventRenderers from available Tasks and Milestones"
    events = []
    
    query = (Q(start_date__isnull=False)|Q(end_date__isnull=False)) & Q(status__hidden=False)
    tasks = Object.filter_by_request(request, manager=Task.objects.filter(query))
    for task in tasks:
        if task.end_date:
            event = EventRenderer(task.name, task.start_date, task.end_date, task.get_absolute_url())
        else:
            event = EventRenderer(task.name, None, task.start_date, task.get_absolute_url())
        event.css_class += " projects-calendar-task"
        events.append(event)
    
    query = (Q(start_date__isnull=False)|Q(end_date__isnull=False)) & Q(status__hidden=False)
    milestones = Object.filter_by_request(request, manager=Milestone.objects.filter(query))
    for milestone in milestones:
        name = "    " + milestone.name 
        if milestone.end_date:
            event = EventRenderer(name, milestone.start_date, milestone.end_date, 
                                  milestone.get_absolute_url())
        else:
            event = EventRenderer(name, None, milestone.start_date, milestone.get_absolute_url())
        event.css_class += " projects-calendar-milestone"
        events.append(event)
        
    return events
예제 #6
0
파일: views.py 프로젝트: alejo8591/maker
def folder_view(request, folder_id, response_format='html'):
    "Single folder view page"
    
    folder = get_object_or_404(Folder, pk=folder_id)
    
    if not request.user.get_profile().has_permission(folder):
        return user_denied(request, message="You don't have access to this Folder")
    
    query = Q(
              object_type='maker.documents.models.Document') | Q(
              object_type='maker.documents.models.File') | Q(
              object_type='maker.documents.models.WebLink')
    query = query & (Q(document__folder=folder) | Q(file__folder=folder) | Q(weblink__folder=folder))    
        
    if request.GET:
        query = query & _get_filter_query(request.GET)
        objects = Object.filter_by_request(request, Object.objects.filter(query).order_by('-last_updated'))
    #    objects = objects.order_by('-last_updated')
    else:        
        objects = Object.filter_by_request(request, Object.objects.filter(query).order_by('-last_updated'))
    #    objects = objects.order_by('-last_updated')
        
    subfolders = Folder.objects.filter(parent=folder)
    filters = FilterForm(request.user.get_profile(), 'title', request.GET)
    
    context = _get_default_context(request)
    context.update({'folder': folder,
                    'objects':objects,
                    'subfolders':subfolders,
                    'filters':filters})
        
    return render_to_response('documents/folder_view', context,
                              context_instance=RequestContext(request),
                              response_format=response_format)
예제 #7
0
파일: views.py 프로젝트: alejo8591/maker
def _get_default_context(request):
    "Returns default context as a dict()"
    
    projects = Object.filter_by_request(request, Project.objects)
    statuses = Object.filter_by_request(request, TaskStatus.objects)
    massform = MassActionForm(request.user.get_profile())
    
    context = {'projects': projects,
               'statuses': statuses,
               'massform': massform}
    
    return context
예제 #8
0
파일: views.py 프로젝트: alejo8591/maker
def group_view(request, group_id, response_format="html"):
    "Group view"

    group = get_object_or_404(Group, pk=group_id)
    contacts = Object.filter_by_request(request, Contact.objects.filter(related_user=group).order_by("name"))
    members = User.objects.filter(Q(default_group=group) | Q(other_groups=group)).distinct()
    subgroups = Group.objects.filter(parent=group)
    types = Object.filter_by_request(request, ContactType.objects.order_by("name"))

    return render_to_response(
        "identities/group_view",
        {"group": group, "subgroups": subgroups, "members": members, "contacts": contacts, "types": types},
        context_instance=RequestContext(request),
        response_format=response_format,
    )
예제 #9
0
파일: views.py 프로젝트: alejo8591/maker
def index_assigned(request, response_format='html'):
    "Tickets assigned to current user"
    
    context = _get_default_context(request)
    agent = context['agent']
        
    if agent:
        query = Q(assigned=agent)
        if request.GET:
            if 'status' in request.GET and request.GET['status']:
                query = query & _get_filter_query(request.GET)
            else:
                query = query & Q(status__hidden=False) & _get_filter_query(request.GET)
        else:
            query = query & Q(status__hidden=False)
        tickets = Object.filter_by_request(request, Ticket.objects.filter(query))
    else:
        return user_denied(request, "You are not a Service Support Agent.", response_format=response_format)
    
    filters = FilterForm(request.user.get_profile(), 'assigned', request.GET)
    
    context.update({'tickets': tickets,
                    'filters': filters})
    
    return render_to_response('services/index_assigned', context,
                              context_instance=RequestContext(request), response_format=response_format)
예제 #10
0
파일: views.py 프로젝트: alejo8591/maker
def settings_view(request, response_format="html"):
    "Settings"

    if not request.user.get_profile().is_admin("maker.identities"):
        return user_denied(
            request, message="You are not an Administrator of the Identities module", response_format=response_format
        )

    contact_types = ContactType.objects.all().filter(trash=False)
    contact_fields = ContactField.objects.all().filter(trash=False)
    contacts = Object.filter_by_request(request, Contact.objects.order_by("name"))

    context = _get_default_context(request)
    context.update({"contact_types": contact_types, "contact_fields": contact_fields, "contacts": contacts})

    if request.POST:
        if "file" in request.FILES:
            csv_file = request.FILES["file"]

            # TODO: check file extension
            content = csv_file.read()
            import_c = ProcessContacts()
            import_c.import_contacts(content)

            return HttpResponseRedirect(reverse("identities_index"))

    return render_to_response(
        "identities/settings_view", context, context_instance=RequestContext(request), response_format=response_format
    )
예제 #11
0
파일: views.py 프로젝트: alejo8591/maker
def contact_delete(request, contact_id, response_format="html"):
    "Contact delete"

    contact = get_object_or_404(Contact, pk=contact_id)
    if not request.user.get_profile().has_permission(contact, mode="w"):
        return user_denied(request, message="You don't have access to this Contact")

    if request.POST:
        if "delete" in request.POST:
            if "trash" in request.POST:
                contact.trash = True
                contact.save()
            else:
                contact.delete()
            return HttpResponseRedirect(reverse("identities_index"))
        elif "cancel" in request.POST:
            return HttpResponseRedirect(reverse("identities_contact_view", args=[contact.id]))

    types = Object.filter_by_request(request, ContactType.objects.order_by("name"))

    return render_to_response(
        "identities/contact_delete",
        {"contact": contact, "types": types},
        context_instance=RequestContext(request),
        response_format=response_format,
    )
예제 #12
0
파일: views.py 프로젝트: alejo8591/maker
def contact_edit(request, contact_id, response_format="html"):
    "Contact edit"

    contact = get_object_or_404(Contact, pk=contact_id)
    if not request.user.get_profile().has_permission(contact, mode="w"):
        return user_denied(request, message="You don't have write access to this Contact")

    if request.POST:
        if not "cancel" in request.POST:
            form = ContactForm(
                request.user.get_profile(), contact.contact_type, request.POST, files=request.FILES, instance=contact
            )
            if form.is_valid():
                contact = form.save(request)
                return HttpResponseRedirect(reverse("identities_contact_view", args=[contact.id]))
        else:
            return HttpResponseRedirect(reverse("identities_contact_view", args=[contact.id]))
    else:
        form = ContactForm(request.user.get_profile(), contact.contact_type, instance=contact)

    types = Object.filter_by_request(request, ContactType.objects.order_by("name"))

    return render_to_response(
        "identities/contact_edit",
        {"contact": contact, "types": types, "form": form},
        context_instance=RequestContext(request),
        response_format=response_format,
    )
예제 #13
0
파일: views.py 프로젝트: alejo8591/maker
def contact_add_typed(request, type_id, response_format="html"):
    "Contact add with preselected type"

    contact_type = get_object_or_404(ContactType, pk=type_id)
    if not request.user.get_profile().has_permission(contact_type, mode="x"):
        return user_denied(request, message="You don't have access to create " + unicode(contact_type))

    if request.POST:
        if not "cancel" in request.POST:
            form = ContactForm(request.user.get_profile(), contact_type, request.POST, files=request.FILES)
            if form.is_valid():
                contact = form.save(request, contact_type)
                contact.set_user_from_request(request)
                return HttpResponseRedirect(reverse("identities_contact_view", args=[contact.id]))
        else:
            return HttpResponseRedirect(reverse("identities_index"))
    else:
        form = ContactForm(request.user.get_profile(), contact_type)

    types = Object.filter_by_request(request, ContactType.objects.order_by("name"))

    return render_to_response(
        "identities/contact_add_typed",
        {"type": contact_type, "types": types, "form": form},
        context_instance=RequestContext(request),
        response_format=response_format,
    )
예제 #14
0
파일: views.py 프로젝트: alejo8591/maker
def status_view(request, status_id, response_format='html'):
    "Status view"
    
    status = get_object_or_404(ChangeSetStatus, pk=status_id)
    
    if not request.user.get_profile().has_permission(status) \
        and not request.user.get_profile().is_admin('maker.changes'):
        return user_denied(request, "You don't have access to this Change Set Status.", 
                           response_format=response_format)
    
    
    query = Q(object__in=Object.filter_by_request(request, Object.objects)) & Q(status=status)
    if request.GET:
        query = query & _get_filter_query(request.GET)
        filters = FilterForm(request.user.get_profile(), 'status', request.GET)
    else:
        filters = FilterForm(request.user.get_profile(), 'status')
    
    changesets = ChangeSet.objects.filter(query)
    
    context = _get_default_context(request)
    context.update({'status': status,
                    'changesets': changesets,
                    'filters': filters})

    return render_to_response('changes/status_view', context,
                              context_instance=RequestContext(request), response_format=response_format)
예제 #15
0
파일: views.py 프로젝트: alejo8591/maker
def folder_edit(request, knowledgeType_id, response_format='html'):
    "Knowledge folder edit page"
    
    folder = get_object_or_404(KnowledgeFolder, pk=knowledgeType_id)
    items = Object.filter_by_request(request, manager=KnowledgeItem.objects.filter(folder=folder)) 
    
    if not request.user.get_profile().has_permission(folder, mode="w"):
        return user_denied(request, message="You don't have access to this Knowledge Type")
    
    if request.POST:
        if not 'cancel' in request.POST:
            form = KnowledgeFolderForm(request.user.get_profile(), None, request.POST, instance=folder)
            if form.is_valid():
                folder = form.save()
                return HttpResponseRedirect(reverse('knowledge_folder_view', args=[folder.treepath]))
        else:
            return HttpResponseRedirect(reverse('knowledge_folder_view', args=[folder.treepath]))
    else:
        form = KnowledgeFolderForm(request.user.get_profile(), None, instance=folder)       

    context = _get_default_context(request)
    context.update({'items': items,
                    'folder': folder,
                    'form': form})
        
    return render_to_response('knowledge/folder_edit', context,
                              context_instance=RequestContext(request),
                              response_format=response_format)
예제 #16
0
파일: views.py 프로젝트: alejo8591/maker
def folder_delete(request, knowledgeType_id, response_format='html'):
    "Type delete"
     
    folder = get_object_or_404(KnowledgeFolder, pk=knowledgeType_id)
    items = Object.filter_by_request(request, manager=KnowledgeItem.objects.filter(folder=folder))
    
    if not request.user.get_profile().has_permission(folder, mode='w'):
        return user_denied(request, message="You don't have access to this Knowledge Type")
    
    if request.POST:
        if 'delete' in request.POST:
            if 'trash' in request.POST:
                folder.trash = True
                folder.save()
            else:
                folder.delete()
            return HttpResponseRedirect(reverse('knowledge_index'))
        elif 'cancel' in request.POST:
            return HttpResponseRedirect(reverse('knowledge_folder_view', args=[folder.treepath]))
        
    context = _get_default_context(request)
    context.update({'items': items,
                    'folder':folder})
        
    return render_to_response('knowledge/folder_delete', context,
                              context_instance=RequestContext(request),
                              response_format=response_format)
예제 #17
0
파일: views.py 프로젝트: alejo8591/maker
def _get_default_context(request):
    "Returns default context for all views as dict()"
    
    types = Object.filter_by_request(request, ItemType.objects.filter(parent__isnull=True))
    statuses = Object.filter_by_request(request, ItemStatus.objects)
    locations = Object.filter_by_request(request, Location.objects)
    massform = MassActionForm(request.user.get_profile())
        
    context = {
               'statuses': statuses,
               'types': types,
               'massform': massform,
               'locations': locations
               }
    
    return context
예제 #18
0
파일: views.py 프로젝트: alejo8591/maker
def milestone_delete(request, milestone_id, response_format='html'):
    "Milestone delete"

    milestone = get_object_or_404(Milestone, pk=milestone_id)
    project = milestone.project
    if not request.user.get_profile().has_permission(milestone, mode='w'):
        return user_denied(request, message="You don't have access to this Milestone")

    query = Q(milestone=milestone, parent__isnull=True)
    if request.GET:
        query = query & _get_filter_query(request.GET)
    tasks = Object.filter_by_request(request, Task.objects.filter(query))
    
    if request.POST:
        if 'delete' in request.POST:
            if 'trash' in request.POST:
                milestone.trash = True
                milestone.save()
            else:
                milestone.delete()
            return HttpResponseRedirect(reverse('projects_index'))
        elif 'cancel' in request.POST:
            return HttpResponseRedirect(reverse('projects_milestone_view', args=[milestone.id]))

    context = _get_default_context(request)
    context.update({'milestone': milestone, 
                    'tasks': tasks,
                    'project':project})
    
    return render_to_response('projects/milestone_delete', context,
                               context_instance=RequestContext(request), response_format=response_format) 
예제 #19
0
파일: views.py 프로젝트: alejo8591/maker
def task_status_delete(request, status_id, response_format='html'):
    "TaskStatus delete"
    
    status = get_object_or_404(TaskStatus, pk=status_id)
    if not request.user.get_profile().has_permission(status, mode='w'):
        return user_denied(request, message="You don't have access to this Task Status")

    if request.POST:
        if 'delete' in request.POST:
            if 'trash' in request.POST:
                status.trash = True
                status.save()
            else:
                status.delete()
            return HttpResponseRedirect(reverse('projects_index'))
        elif 'cancel' in request.POST:
            return HttpResponseRedirect(reverse('projects_index_by_status', args=[status.id]))
    
    milestones = Object.filter_by_request(request, Milestone.objects)

    context = _get_default_context(request)
    context.update({'status':status,
                    'milestones':milestones})    
    
    return render_to_response('projects/status_delete', context,
                              context_instance=RequestContext(request), response_format=response_format)
예제 #20
0
파일: views.py 프로젝트: alejo8591/maker
def index(request, response_format='html'):
    "Homepage"
    trash = Object.filter_by_request(request, manager=Object.objects.filter(trash=True), 
                                     mode='r', filter_trash=False).count()
    user = request.user.get_profile()
    perspective = user.get_perspective()
    widget_objects = Widget.objects.filter(user=user, perspective=perspective)
    clean_widgets = []
    
    for widget_object in widget_objects:
        try:
            module = perspective.get_modules().filter(name=widget_object.module_name)[0]
            widget = _get_widget(request, module, widget_object.widget_name)
            if 'view' in widget:
                try:
                    content = unicode(widget['view'](request, response_format=response_format).content, 'utf_8')
                    widget_content = _get_widget_content(content, response_format=response_format)
                except Exception, e:
                    widget_content = ""
                    if settings.DEBUG:
                        widget_content = str(e)
                
                widget['content'] = widget_content
            if widget:
                widget_object.widget = widget
                clean_widgets.append(widget_object)
        except IndexError:
            widget_object.delete()
예제 #21
0
파일: views.py 프로젝트: alejo8591/maker
def type_edit(request, type_id, response_format='html'):
    "ItemType edit"
    
    item_type = get_object_or_404(ItemType, pk=type_id)
    if not request.user.get_profile().has_permission(item_type, mode='w'):
        return user_denied(request, message="You don't have access to this Item Type", 
                           response_format=response_format)
    infrastructure = Object.filter_by_request(request, 
                                              Item.objects.filter(item_type=item_type).order_by('name'))
    
    if request.POST:
        if not 'cancel' in request.POST:
            form = ItemTypeForm(request.user.get_profile(), request.POST, instance=item_type)
            if form.is_valid():
                item_type = form.save(request)
                return HttpResponseRedirect(reverse('infrastructure_type_view', args=[item_type.id]))
        else:
            return HttpResponseRedirect(reverse('infrastructure_type_view', args=[item_type.id]))
    else:
        form = ItemTypeForm(request.user.get_profile(), instance=item_type)

    context = _get_default_context(request)
    context.update({'infrastructure': infrastructure,
                    'form': form,
                    'item_type': item_type})
    
    return render_to_response('infrastructure/item_type_edit', context,
                              context_instance=RequestContext(request), response_format=response_format)
예제 #22
0
파일: views.py 프로젝트: alejo8591/maker
def ical_all_event(request, response_format='ical'):
    "Export upcoming events "
    query = Q()
    events = Object.filter_by_request(request, Event.objects.filter(query))
    icalstream = """BEGIN:VCALENDAR
VERSION:2.0
CALSCALE:GREGORIAN
METHOD:PUBLISH
PRODID:-//PYVOBJECT//NONSGML Version 1//EN
"""
    vevent = ""
    for event in events:
        vevent += "BEGIN:VEVENT\n"
        if event.start:
            vevent += "DTSTART;VALUE=DATE:%s\n" % str((datetime.strptime(str(event.start)[0:10], '%Y-%m-%d')))[0:10].replace("-", "")
        vevent += "DTEND;VALUE=DATE:%s\n" % str((datetime.strptime(str(event.end)[0:10], '%Y-%m-%d')))[0:10].replace("-", "")
        if not event.details:
            vevent += "SUMMARY:%s\n" % strip_tags(event.name)
        else:
            vevent += "SUMMARY:%s\n" % strip_tags(event.details)
        vevent += "UID:%s\n" % (event.name)
        vevent += "END:VEVENT\n"
        
    icalstream += vevent
    icalstream += """X-WR-CALDESC:Tree.io Calendar
X-WR-CALNAME:Tree.io
X-WR-TIMEZONE:London/UK
END:VCALENDAR
"""
    
    response = HttpResponse(icalstream, mimetype='text/calendar')
    response['Filename'] = 'events.ics'  # IE needs this
    response['Content-Disposition'] = 'attachment; filename=events.ics'
    return response
예제 #23
0
파일: views.py 프로젝트: alejo8591/maker
def type_edit(request, type_id, response_format="html"):
    "ContactType edit"

    contact_type = get_object_or_404(ContactType, pk=type_id)
    if not request.user.get_profile().has_permission(contact_type, mode="w"):
        return user_denied(
            request, message="You don't have access to this Contact Type", response_format=response_format
        )
    identities = Object.filter_by_request(request, Contact.objects.filter(contact_type=contact_type).order_by("name"))

    if request.POST:
        if not "cancel" in request.POST:
            form = ContactTypeForm(request.user.get_profile(), request.POST, instance=contact_type)
            if form.is_valid():
                contact_type = form.save(request)
                return HttpResponseRedirect(reverse("identities_type_view", args=[contact_type.id]))
        else:
            return HttpResponseRedirect(reverse("identities_type_view", args=[contact_type.id]))
    else:
        form = ContactTypeForm(request.user.get_profile(), instance=contact_type)

    context = _get_default_context(request)
    context.update({"identities": identities, "form": form, "type": contact_type})

    return render_to_response(
        "identities/contact_type_edit",
        context,
        context_instance=RequestContext(request),
        response_format=response_format,
    )
예제 #24
0
파일: views.py 프로젝트: alejo8591/maker
def contact_me(request, attribute="", response_format="html"):
    "My Contact card"

    contact = request.user.get_profile().get_contact()
    if not request.user.get_profile().has_permission(contact):
        return user_denied(request, message="You don't have access to this Contact")
    types = Object.filter_by_request(request, ContactType.objects.order_by("name"))

    if not contact:
        return render_to_response(
            "identities/contact_me_missing",
            {"types": types},
            context_instance=RequestContext(request),
            response_format=response_format,
        )

    subcontacts = Object.filter_by_request(request, contact.child_set)
    contact_values = contact.contactvalue_set.order_by("field__name")

    objects = get_contact_objects(request.user.get_profile(), contact, preformat=True)

    module = None
    for key in objects:
        if not attribute:
            if objects[key]["count"]:
                # attribute = objects[key]['objects'].keys()[0]
                module = objects[key]["module"]
        else:
            if attribute in objects[key]["objects"].keys():
                module = objects[key]["module"]
                break

    return render_to_response(
        "identities/contact_me",
        {
            "contact": contact,
            "types": types,
            "subcontacts": subcontacts,
            "objects": objects,
            "current_module": module,
            "attribute": attribute,
            "types": types,
            "contact_values": contact_values,
        },
        context_instance=RequestContext(request),
        response_format=response_format,
    )
예제 #25
0
파일: views.py 프로젝트: alejo8591/maker
def index(request, response_format='html'):
    "Knowledge base index page"
    
    if request.GET:
        query = _get_filter_query(request.GET)
        items = Object.filter_by_request(request, KnowledgeItem.objects.filter(query))
    else:
        items = Object.filter_by_request(request, KnowledgeItem.objects) 
        
    filters = FilterForm(request.user.get_profile(), 'name', request.GET)
    
    context = _get_default_context(request)
    context.update({'filters':filters,
                    'items':items})
        
    return render_to_response('knowledge/index', context,
                              context_instance=RequestContext(request),
                              response_format=response_format)
예제 #26
0
파일: views.py 프로젝트: alejo8591/maker
def _get_default_context(request):
    "Preprocess context"

    context = {}
    types = Object.filter_by_request(request, ContactType.objects.order_by("name"))
    massform = MassActionForm(request.user.get_profile())
    context.update({"types": types, "massform": massform})

    return context
예제 #27
0
파일: views.py 프로젝트: alejo8591/maker
def index(request, response_format="html"):
    "Default page"

    if request.GET:
        query = _get_filter_query(request.GET)
        contacts = Object.filter_by_request(request, Contact.objects.filter(query).order_by("name"))
    else:
        contacts = Object.filter_by_request(request, Contact.objects.order_by("name"))

    types = Object.filter_by_request(request, ContactType.objects.order_by("name"))
    filters = FilterForm(request.user.get_profile(), "name", request.GET)

    context = _get_default_context(request)
    context.update({"contacts": contacts, "filters": filters})

    return render_to_response(
        "identities/index", context, context_instance=RequestContext(request), response_format=response_format
    )
예제 #28
0
파일: views.py 프로젝트: alejo8591/maker
def index_inbox(request, response_format='html'):
    "Received messages index page"

    query = Q(reply_to__isnull=True) & ~Q(author=request.user.get_profile().get_contact())
    if request.GET:
        query = query & _get_filter_query(request.GET)
        messages = Object.filter_by_request(request, Message.objects.filter(query))
    else:
        messages = Object.filter_by_request(request, Message.objects.filter(query))
    
    filters = FilterForm(request.user.get_profile(), 'title', request.GET)
    context = _get_default_context(request)
    context.update({'filters': filters,
                    'messages': messages})
    
    return render_to_response('messaging/index_inbox', context,
                              context_instance=RequestContext(request),
                              response_format=response_format)
예제 #29
0
파일: views.py 프로젝트: alejo8591/maker
def sla_index(request, response_format='html'):
    "All available Service Level Agreements"
    
    if request.GET:
        query = _get_filter_query(request.GET, ServiceLevelAgreement)
        slas = Object.filter_by_request(request,
                                        ServiceLevelAgreement.objects.filter(query))
    else:
        slas = Object.filter_by_request(request,
                                        ServiceLevelAgreement.objects)
        
    filters = SLAFilterForm(request.user.get_profile(), '', request.GET)
    
    context = _get_default_context(request)
    context.update({'slas': slas, 'filters': filters})
    
    return render_to_response('services/sla_index', context,
                              context_instance=RequestContext(request), response_format=response_format)    
예제 #30
0
파일: views.py 프로젝트: alejo8591/maker
def index_documents(request, response_format='html'):
    "Index_documents page: displays all Documents"

    if request.GET:
        query = _get_direct_filter_query(request.GET)
        documents = Object.filter_by_request(request, Document.objects.filter(query).order_by('-last_updated'))
    else:
        documents = Object.filter_by_request(request, Document.objects.order_by('-last_updated')) 

    filters = FilterForm(request.user.get_profile(), 'title', request.GET)

    context = _get_default_context(request)
    context.update({'filters':filters,
                    'documents':documents}) 
    
    return render_to_response('documents/index_documents', context,
                              context_instance=RequestContext(request),
                              response_format=response_format)