def init_with_context(self, context): """ self.children += [{ 'title': _('Parts Recycle'), 'change_url': change_url + 'draft/', 'add_url': add_url }, { 'title': _('supervisor approve'), 'change_url': change_url + 'supervisorapprove/' }, { 'title': _('engineer approve'), 'change_url': change_url + 'engineerapprove/' }, { 'title': _('repaire'), 'change_url': change_url + 'repair/' }, { 'title': _('query'), 'change_url': change_url }] """ if self._initialized: return mod, inst_str = self.models.rsplit('.', 1) mod = import_module(mod) inst = getattr(mod, inst_str) app_label, model_name = inst._meta.app_label, inst._meta.model_name user = context['request'].user info2 = (app_label, model_name) url_draft_suffix = statusUrl.get_url_suffix_by_status(Status.DRAFT) add_url = reverse('admin:%s_%s_add_%s' % (app_label, model_name, url_draft_suffix)) draft_child = {'title': statusUrl.get_menu_name_by_status(Status.DRAFT)} if user.has_perm('%s.add_%s' % info2): draft_child['add_url'] = add_url if user.has_perm('%s.change_%s' % info2): draft_child['change_url'] = reverse('admin:%s_%s_changelist_%s' % (app_label, model_name, url_draft_suffix)) if 'add_url' in draft_child: self.children.append(draft_child) perm_dict = { Status.SUPERVISOR_APPROVE: '%s.can_approve' % app_label, Status.ENGINEER_APPROVE: '%s.can_engineer_approve' % app_label, Status.REPAIR: '%s.can_repair' % app_label, statusUrl.STATUS_QUERY: '%s.change_%s' % info2 } for status in perm_dict.keys(): if user.has_perm(perm_dict[status]): self.children.append({ 'title': statusUrl.get_menu_name_by_status(status), 'change_url': reverse('admin:%s_%s_changelist_%s' % (info2 + (statusUrl.get_url_suffix_by_status(status),))) }) self._initialized = True
def status_menu_name(status): """ return the menu name of status url Arguments: - `status`: """ return statusUrl.get_menu_name_by_status(status)
def init_with_context(self, context): user = context['request'].user info2 = (self.app_label, self.model_name) perm_dict = { Status.DRAFT: '%s.change_%s' % info2, Status.SUPERVISOR_APPROVE: '%s.can_approve' % self.app_label, Status.ENGINEER_APPROVE: '%s.can_engineer_approve' % self.app_label, Status.REPAIR: '%s.can_repair' % self.app_label, statusUrl.STATUS_QUERY: '%s.change_%s' % info2 } for status in perm_dict.keys(): if user.has_perm(perm_dict[status]): self.children.append(items.MenuItem( title = statusUrl.get_menu_name_by_status(status), url = reverse('admin:%s_%s_changelist_%s' % (info2 + (statusUrl.get_url_suffix_by_status(status),))) ))