示例#1
0
def prepare_message(request, project, m, detailed):
    name, addr = m.sender
    m.sender_full_name = "%s <%s>" % (name, addr)
    m.sender_display_name = name or addr
    m.age = m.get_age()
    m.url = reverse("series_detail", kwargs={"project": project.name, "message_id": m.message_id})
    m.status_tags = []
    m.extra_links = []
    if m.is_series_head:
        m.num_patches = m.get_num_patches()
        m.total_patches = m.get_total_patches()
        if m.num_patches < m.total_patches:
            missing = m.total_patches - m.num_patches
            m.status_tags.append({
                "title": "Series not complete (%d %s not received)" %
                         (missing, "patches" if missing > 1 else "patch"),
                "type": "warning",
                "char": "?",
            })

    # hook points for plugins
    m.has_other_revisions = False
    m.extra_status = []
    m.extra_ops = []
    dispatch_module_hook("prepare_message_hook", request=request, message=m,
                         detailed=detailed)
    if m.is_merged:
        m.status_tags = [{
            "title": "Series merged",
            "type": "success",
            "char": "Merged",
        }]
    return m
示例#2
0
def prepare_series(request, s, fields=None):
    r = {}

    def want_field(f):
        return not fields or f in fields

    if want_field("subject"):
        r["subject"] = s.subject
    if want_field("project"):
        r["project"] = s.project.name
    if want_field("project.git"):
        r["project.git"] = s.project.git
    if want_field("message-id"):
        r["message-id"] = s.message_id
    if want_field("patches"):
        r["patches"] = [prepare_patch(x) for x in s.get_patches()]
    if want_field("properties"):
        r["properties"] = s.get_properties()
    if want_field("is_complete"):
        r["is_complete"] = s.is_complete
    dispatch_module_hook("prepare_series_hook",
                         request=request,
                         series=s,
                         response=r)
    if fields:
        r = dict([(k, v) for k, v in r.items() if k in fields])
    return r
示例#3
0
def prepare_message(request, m, detailed):
    name, addr = m.get_sender()
    m.sender_full_name = "%s <%s>" % (name, addr)
    m.sender_display_name = name or addr
    m.age = m.get_age()
    m.url = "/%s/%s" % (m.project.name, m.message_id)
    m.status_tags = []
    if m.is_series_head:
        m.num_patches = m.get_num_patches()
        m.total_patches = m.get_total_patches()
        if m.num_patches < m.total_patches:
            missing = m.total_patches - m.num_patches
            m.status_tags.append({
                "title": "Series not complete (%d %s not received)" % \
                        (missing, "patches" if missing > 1 else "patch"),
                "type": "warning",
                "char": "?",
                })
    # hook points for plugins
    m.has_other_revisions = False
    m.extra_status = []
    m.extra_ops = []
    m.extra_links = []
    dispatch_module_hook("prepare_message_hook",
                         request=request,
                         message=m,
                         detailed=detailed)
    if m.is_merged:
        m.status_tags = [{
            "title": "Series merged",
            "type": "success",
            "char": "Merged",
        }]
    return m
示例#4
0
 def get_fields(self):
     fields = super(ProjectSerializer, self).get_fields()
     request = self.context["request"]
     dispatch_module_hook("rest_project_fields_hook",
                          request=request,
                          fields=fields)
     return fields
示例#5
0
 def get_fields(self):
     fields = super(SeriesSerializer, self).get_fields()
     request = self.context['request']
     dispatch_module_hook("rest_series_fields_hook",
                          request=request,
                          fields=fields,
                          detailed=self.detailed)
     return fields
示例#6
0
文件: rest.py 项目: dcaratti/patchew
    def get_fields(self):
        fields = super(MessageSerializer, self).get_fields()
        try:
            # When called from the CoreAPI schema generator, there is no context defined?
            request = self.context["request"]
        except TypeError:
            request = None

        dispatch_module_hook("rest_message_fields_hook", request=request, fields=fields)
        return fields
示例#7
0
    def get_fields(self):
        fields = super(MessageSerializer, self).get_fields()
        try:
            # When called from the CoreAPI schema generator, there is no context defined?
            request = self.context['request']
        except TypeError:
            request = None

        dispatch_module_hook("rest_message_fields_hook", request=request,
                             fields=fields)
        return fields
示例#8
0
def prepare_project(p):
    ret = {
        "name": p.name,
        "mailing_list": p.mailing_list,
        "url": p.url,
        "git": p.git,
        "description": p.description,
        "properties": {},
    }
    dispatch_module_hook("get_projects_prepare_hook",
                         project=p,
                         response=ret["properties"])

    return ret
示例#9
0
def prepare_series(request, s):
    r = {
        "subject": s.subject,
        "project": s.project.name,
        "project.git": s.project.git,
        "message-id": s.message_id,
        "patches": [prepare_patch(x) for x in s.get_patches()],
        "properties": s.get_properties(),
        "is_complete": s.is_complete,
    }
    dispatch_module_hook("prepare_series_hook",
                         request=request,
                         series=s,
                         response=r)
    return r
示例#10
0
def view_project_detail(request, project):
    po = api.models.Project.objects.filter(name=project).first()
    if not po:
        raise Http404("Project not found")
    nav_path = prepare_navigate_list(
        "Information", ("series_list", {"project": project}, project)
    )
    po.extra_info = []
    po.extra_status = []
    po.extra_ops = []
    dispatch_module_hook("prepare_project_hook", request=request, project=po)
    return render_page(request, "project-detail.html",
                       results=prepare_results(request, po),
                       project=po,
                       navigate_links=nav_path,
                       search="")
示例#11
0
def view_project_detail(request, project):
    po = api.models.Project.objects.filter(name=project).first()
    if not po:
        raise Http404("Project not found")
    nav_path = prepare_navigate_list("Information", ("series_list", {
        "project": project
    }, project))
    po.extra_info = []
    po.extra_status = []
    po.extra_ops = []
    dispatch_module_hook("prepare_project_hook", request=request, project=po)
    return render_page(request,
                       "project-detail.html",
                       project=po,
                       navigate_links=nav_path,
                       search="")
示例#12
0
#
# Copyright 2016 Red Hat, Inc.
#
# Authors:
#     Fam Zheng <*****@*****.**>
#
# This work is licensed under the MIT License.  Please see the LICENSE file or
# http://opensource.org/licenses/MIT.

from django.conf.urls import url
from django.contrib.auth import views as auth_views
from . import views
from mod import dispatch_module_hook

urlpatterns = []
dispatch_module_hook("www_url_hook", urlpatterns=urlpatterns)

urlpatterns += [
        url(
            '^login/$',
            auth_views.login,
            {'template_name': 'login.html'},
            name="login"
        ),
        url(
            '^logout/$',
            auth_views.logout,
            name="logout"
        ),
        url(r"^search$", views.view_search, name="search"),
        url(r"^search-help$", views.view_search_help, name="search_help"),
示例#13
0
def render_page(request, template_name, **data):
    data["patchew_version"] = settings.VERSION + try_get_git_head()
    dispatch_module_hook("render_page_hook",
                         request=request,
                         context_data=data)
    return render(request, template_name, context=data)
示例#14
0
 def get_fields(self):
     fields = super(ProjectSerializer, self).get_fields()
     request = self.context['request']
     dispatch_module_hook("rest_project_fields_hook", request=request,
                          fields=fields)
     return fields
示例#15
0
 def get_fields(self):
     fields = super(SeriesSerializer, self).get_fields()
     request = self.context['request']
     dispatch_module_hook("rest_series_fields_hook", request=request,
                          fields=fields, detailed=self.detailed)
     return fields
示例#16
0
def render_page(request, template_name, **data):
    data["patchew_version"] = settings.VERSION + try_get_git_head()
    dispatch_module_hook("render_page_hook", request=request, context_data=data)
    return render(request, template_name, context=data)
示例#17
0
文件: rest.py 项目: famz/patchew
 def get_fields(self):
     fields = super(SeriesSerializer, self).get_fields()
     dispatch_module_hook("rest_series_fields_hook",
                          fields=fields,
                          detailed=self.detailed)
     return fields
示例#18
0
文件: rest.py 项目: famz/patchew
 def get_results(self, message):
     results = {}
     dispatch_module_hook("rest_results_hook",
                          message=message,
                          results=results)
     return results
示例#19
0
#
# Copyright 2016 Red Hat, Inc.
#
# Authors:
#     Fam Zheng <*****@*****.**>
#
# This work is licensed under the MIT License.  Please see the LICENSE file or
# http://opensource.org/licenses/MIT.

from django.conf.urls import url
from django.contrib.auth import views as auth_views
from . import views
from mod import dispatch_module_hook

urlpatterns = []
dispatch_module_hook("www_url_hook", urlpatterns=urlpatterns)

urlpatterns += [
    url(
        '^login/$',
        auth_views.login,
        {'template_name': 'login.html'},
        name="login"
    ),
    url(
        '^logout/$',
        auth_views.logout,
        name="logout"
    ),
    url(r"^search$", views.view_search, name="search"),
    url(r"^search-help$", views.view_search_help, name="search_help"),
示例#20
0
文件: rest.py 项目: famz/patchew
 def get_fields(self):
     fields = super(MessageSerializer, self).get_fields()
     dispatch_module_hook("rest_message_fields_hook", fields=fields)
     return fields