Commit d87a0bbc authored by Romain Courteaud's avatar Romain Courteaud

romain_dev: forum

parent 0cb0bff8
<!DOCTYPE html>
<html>
<!--
data-i18n=Others
-->
<head>
<meta http-equiv="Content-type" content="text/html; charset=utf-8" />
<meta name="viewport" content="width=device-width" />
<title>ERP5 PT Frontpage</title>
<link rel="http://www.renderjs.org/rel/interface" href="interface_page.html">
<!-- renderjs -->
<script src="rsvp.js" type="text/javascript"></script>
<script src="renderjs.js" type="text/javascript"></script>
<!--link rel="stylesheet" href="gadget_erp5_page_nx_project_quality.css"-->
<!-- custom script -->
<script src="jiodev.js" type="text/javascript"></script>
<script src="gadget_global.js" type="text/javascript"></script>
<script src="domsugar.js" type="text/javascript"></script>
<script src="gadget_erp5_page_nx_forum.js" type="text/javascript"></script>
</head>
<body>
<ul>
</ul>
</body>
</html>
\ No newline at end of file
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="Web Page" module="erp5.portal_type"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>_Access_contents_information_Permission</string> </key>
<value>
<tuple>
<string>Anonymous</string>
<string>Assignee</string>
<string>Assignor</string>
<string>Associate</string>
<string>Auditor</string>
<string>Manager</string>
</tuple>
</value>
</item>
<item>
<key> <string>_Add_portal_content_Permission</string> </key>
<value>
<tuple>
<string>Assignee</string>
<string>Assignor</string>
<string>Manager</string>
</tuple>
</value>
</item>
<item>
<key> <string>_Change_local_roles_Permission</string> </key>
<value>
<tuple>
<string>Assignor</string>
<string>Manager</string>
</tuple>
</value>
</item>
<item>
<key> <string>_Modify_portal_content_Permission</string> </key>
<value>
<tuple>
<string>Assignee</string>
<string>Assignor</string>
<string>Manager</string>
</tuple>
</value>
</item>
<item>
<key> <string>_View_Permission</string> </key>
<value>
<tuple>
<string>Anonymous</string>
<string>Assignee</string>
<string>Assignor</string>
<string>Associate</string>
<string>Auditor</string>
<string>Manager</string>
</tuple>
</value>
</item>
<item>
<key> <string>content_md5</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>content_type</string> </key>
<value> <string>text/html</string> </value>
</item>
<item>
<key> <string>default_reference</string> </key>
<value> <string>gadget_erp5_page_nx_forum.html</string> </value>
</item>
<item>
<key> <string>description</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>romain_forum_html</string> </value>
</item>
<item>
<key> <string>language</string> </key>
<value> <string>en</string> </value>
</item>
<item>
<key> <string>portal_type</string> </key>
<value> <string>Web Page</string> </value>
</item>
<item>
<key> <string>short_title</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string>Forum Reader</string> </value>
</item>
<item>
<key> <string>version</string> </key>
<value> <string>001</string> </value>
</item>
<item>
<key> <string>workflow_history</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent>
</value>
</item>
</dictionary>
</pickle>
</record>
<record id="2" aka="AAAAAAAAAAI=">
<pickle>
<global name="PersistentMapping" module="Persistence.mapping"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>data</string> </key>
<value>
<dictionary>
<item>
<key> <string>document_publication_workflow</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAM=</string> </persistent>
</value>
</item>
<item>
<key> <string>edit_workflow</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAQ=</string> </persistent>
</value>
</item>
<item>
<key> <string>processing_status_workflow</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAU=</string> </persistent>
</value>
</item>
</dictionary>
</value>
</item>
</dictionary>
</pickle>
</record>
<record id="3" aka="AAAAAAAAAAM=">
<pickle>
<global name="WorkflowHistoryList" module="Products.ERP5Type.Workflow"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>_log</string> </key>
<value>
<list>
<dictionary>
<item>
<key> <string>action</string> </key>
<value> <string>publish_alive</string> </value>
</item>
<item>
<key> <string>actor</string> </key>
<value> <string>zope</string> </value>
</item>
<item>
<key> <string>comment</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>error_message</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>time</string> </key>
<value>
<object>
<klass>
<global name="DateTime" module="DateTime.DateTime"/>
</klass>
<tuple>
<none/>
</tuple>
<state>
<tuple>
<float>1609424889.61</float>
<string>UTC</string>
</tuple>
</state>
</object>
</value>
</item>
<item>
<key> <string>validation_state</string> </key>
<value> <string>published_alive</string> </value>
</item>
</dictionary>
</list>
</value>
</item>
</dictionary>
</pickle>
</record>
<record id="4" aka="AAAAAAAAAAQ=">
<pickle>
<global name="WorkflowHistoryList" module="Products.ERP5Type.Workflow"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>_log</string> </key>
<value>
<list>
<dictionary>
<item>
<key> <string>action</string> </key>
<value> <string>edit</string> </value>
</item>
<item>
<key> <string>actor</string> </key>
<value> <string>zope</string> </value>
</item>
<item>
<key> <string>comment</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>error_message</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>serial</string> </key>
<value> <string>989.1604.35674.62737</string> </value>
</item>
<item>
<key> <string>state</string> </key>
<value> <string>current</string> </value>
</item>
<item>
<key> <string>time</string> </key>
<value>
<object>
<klass>
<global name="DateTime" module="DateTime.DateTime"/>
</klass>
<tuple>
<none/>
</tuple>
<state>
<tuple>
<float>1609424915.53</float>
<string>UTC</string>
</tuple>
</state>
</object>
</value>
</item>
</dictionary>
</list>
</value>
</item>
</dictionary>
</pickle>
</record>
<record id="5" aka="AAAAAAAAAAU=">
<pickle>
<global name="WorkflowHistoryList" module="Products.ERP5Type.Workflow"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>_log</string> </key>
<value>
<list>
<dictionary>
<item>
<key> <string>action</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>actor</string> </key>
<value> <string>zope</string> </value>
</item>
<item>
<key> <string>comment</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>error_message</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>external_processing_state</string> </key>
<value> <string>empty</string> </value>
</item>
<item>
<key> <string>serial</string> </key>
<value> <string>0.0.0.0</string> </value>
</item>
<item>
<key> <string>time</string> </key>
<value>
<object>
<klass>
<global name="DateTime" module="DateTime.DateTime"/>
</klass>
<tuple>
<none/>
</tuple>
<state>
<tuple>
<float>1609424496.86</float>
<string>UTC</string>
</tuple>
</state>
</object>
</value>
</item>
</dictionary>
</list>
</value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
/*global window, rJS, RSVP, domsugar, SimpleQuery, ComplexQuery, Query,
console */
/*jslint nomen: true, indent: 2, maxerr: 3, maxlen: 80, continue:true */
(function (window, rJS, RSVP, domsugar, SimpleQuery, ComplexQuery, Query) {
"use strict";
// XXX history_previous: prevent getting to erp5 ui by checking the
// historing or forcing the page value
// XXX create topic by followup (allDocs group by follow up)
var DISPLAY_READER = 'display_reader',
MAIN_SCOPE = 'child_scope';
function loadChildGadget(gadget, gadget_url, must_declare, callback) {
var queue,
child_gadget;
if (must_declare) {
queue = gadget.declareGadget(gadget_url, {scope: MAIN_SCOPE});
} else {
queue = gadget.getDeclaredGadget(MAIN_SCOPE);
}
return queue
.push(function (result) {
child_gadget = result;
if (callback) {
return callback(result);
}
})
.push(function (result) {
if (must_declare) {
domsugar(gadget.element, [child_gadget.element]);
}
return result;
});
}
function renderDiscussionThreadList(gadget, must_declare) {
return loadChildGadget(gadget, "gadget_erp5_pt_form_view.html",
must_declare,
function (form_gadget) {
var group_list = [],
field_dict = {},
column_list = [
['title', 'Title'],
['DiscussionThread_getDiscussionPostCount', 'Responses'],
['modification_date', 'Modification Date']
];
field_dict.listbox = {
"column_list": column_list,
"show_anchor": 0,
"default_params": {},
"editable": 1,
"editable_column_list": [],
"key": "field_listbox",
"lines": 15,
"list_method": "portal_catalog",
"query": "urn:jio:allDocs?query=" + Query.objectToSearchText(
new ComplexQuery({
operator: "AND",
query_list: [
new SimpleQuery({
key: "portal_type",
operator: "=",
type: "simple",
value: "Discussion Thread"
}),
new SimpleQuery({
key: "validation_state",
operator: "=",
type: "simple",
// XXX Check usual states
value: "shared"
})
],
type: "complex"
})
),
"portal_type": ["Discussion Thread"],
"search_column_list": [],
"sort_column_list": [],
"sort": [['modification_date', 'DESC']],
"title": "Discussion Threads",
"type": "ListBox"
};
group_list.push([
"bottom",
[["listbox"]]
], [
"hidden", ["listbox_modification_date"]
]);
return form_gadget.render({
erp5_document: {
"_embedded": {
"_view": field_dict
},
"_links": {
"type": {
// form_list display portal_type in header
name: ""
}
}
},
form_definition: {
group_list: group_list
}
});
})
.push(function () {
return gadget.updateHeader({
page_title: 'Forum',
page_icon: 'comment'
});
});
}
function renderDiscussionThread(gadget, must_declare, jio_key) {
return loadChildGadget(gadget, "gadget_erp5_pt_form_view.html",
must_declare, function (form_gadget) {
var thread_info_dict;
return gadget.jio_allDocs({
select_list: ['uid', 'title'],
query: Query.objectToSearchText(
new SimpleQuery({
key: "relative_url",
operator: "=",
type: "simple",
value: jio_key
})
),
limit: [0, 1]
})
.push(function (result_list) {
// XXX implement pseudo getResultValue
thread_info_dict = result_list.data.rows[0].value;
var group_list = [],
field_dict = {},
column_list = [
['asStrippedHTML', 'Content'],
['modification_date', 'Modification Date']
];
field_dict.listbox = {
"column_list": column_list,
"show_anchor": 0,
"default_params": {},
"editable": 1,
"editable_column_list": [],
"key": "field_listbox",
"lines": 15,
"list_method": "portal_catalog",
"query": "urn:jio:allDocs?query=" + Query.objectToSearchText(
new ComplexQuery({
operator: "AND",
query_list: [
new SimpleQuery({
key: "portal_type",
operator: "=",
type: "simple",
value: "Discussion Post"
}),
new SimpleQuery({
key: "parent_uid",
operator: "=",
type: "simple",
// XXX Check usual states
value: thread_info_dict.uid
})
],
type: "complex"
})
),
"portal_type": ["Discussion Post"],
"search_column_list": [],
"sort_column_list": [],
"sort": [['modification_date', 'ASC']],
"title": "Discussion Posts",
"type": "ListBox"
};
group_list.push([
"bottom",
[["listbox"]]
], [
"hidden", ["listbox_modification_date"]
]);
return form_gadget.render({
erp5_document: {
"_embedded": {
"_view": field_dict
},
"_links": {
"type": {
// form_list display portal_type in header
name: ""
}
}
},
form_definition: {
group_list: group_list
}
});
})
.push(function () {
return gadget.getUrlFor({command: 'history_previous'});
})
.push(function (url) {
return gadget.updateHeader({
page_title: 'Thread: ' + thread_info_dict.title,
page_icon: 'comment',
front_url: url
});
});
});
}
function renderDiscussionPost(gadget, must_declare, jio_key) {
return loadChildGadget(gadget, "gadget_erp5_pt_form_view.html",
must_declare,
function (form_gadget) {
var thread_info_dict;
return gadget.jio_allDocs({
select_list: ['asStrippedHTML', 'title'],
query: Query.objectToSearchText(
new SimpleQuery({
key: "relative_url",
operator: "=",
type: "simple",
value: jio_key
})
),
limit: [0, 1]
})
.push(function (result_list) {
// XXX implement pseudo getResultValue
thread_info_dict = result_list.data.rows[0].value;
var group_list = [],
field_dict = {};
field_dict.content = {
"editable": 0,
"key": "content",
"default": thread_info_dict.asStrippedHTML,
"type": "EditorField"
};
group_list.push([
"bottom",
[["content"]]
]);
return form_gadget.render({
erp5_document: {
"_embedded": {
"_view": field_dict
},
"_links": {
"type": {
// form_list display portal_type in header
name: ""
}
}
},
form_definition: {
group_list: group_list
}
});
})
.push(function () {
return gadget.getUrlFor({command: 'history_previous'});
})
.push(function (url) {
return gadget.updateHeader({
page_title: 'Post: ' + thread_info_dict.title,
page_icon: 'comment',
front_url: url
});
});
});
}
function createMultipleSimpleOrQuery(key, value_list) {
var i,
query_list = [];
for (i = 0; i < value_list.length; i += 1) {
query_list.push(new SimpleQuery({
key: key,
operator: "=",
type: "simple",
value: value_list[i]
}));
}
return new ComplexQuery({
operator: "OR",
query_list: query_list,
type: "complex"
});
}
rJS(window)
/////////////////////////////////////////////////////////////////
// Acquired methods
/////////////////////////////////////////////////////////////////
.declareAcquiredMethod("updateHeader", "updateHeader")
.declareAcquiredMethod("translate", "translate")
.declareAcquiredMethod("getUrlForList", "getUrlForList")
.declareAcquiredMethod("getUrlFor", "getUrlFor")
.declareAcquiredMethod("jio_allDocs", "jio_allDocs")
.declareAcquiredMethod("jio_get", "jio_get")
.declareMethod('triggerSubmit', function () {
return;
})
.declareMethod('render2', function renderHeader() {
var gadget = this;
return gadget.jio_allDocs({
select_list: ['uid', 'follow_up_title', 'title',
'modification_date', 'countFolder'],
sort_on: [['modification_date', 'DESC']],
query: Query.objectToSearchText(
new ComplexQuery({
operator: "AND",
query_list: [
new SimpleQuery({
key: "portal_type",
operator: "=",
type: "simple",
value: "Discussion Thread"
}),
new SimpleQuery({
key: "validation_state",
operator: "=",
type: "simple",
// XXX Check usual states
value: "shared"
})
],
type: "complex"
})
),
limit: 15
})
.push(function (result) {
var uid_list = [];
if (result.data.total_rows.length === 0) {
uid_list.push(-1);
} else {
uid_list = result.data.rows.map(function (x) {
return x.value.uid;
});
}
// Search amount of documentation web pages related to those products
return gadget.jio_allDocs({
select_list: ['parent_uid', 'count(*)'],
query: Query.objectToSearchText(
new ComplexQuery({
operator: "AND",
query_list: [
new SimpleQuery({
key: "portal_type",
operator: "=",
type: "simple",
value: "Discussion Post"
}),
new ComplexQuery({
operator: "OR",
type: "complex",
query_list: uid_list.map(function (parent_uid) {
return new SimpleQuery({
key: "parent_uid",
operator: "=",
type: "simple",
value: parent_uid
});
})
})
],
type: "complex"
})
),
group_by: ['parent_uid'],
limit: 10000
})
.push(function () {
return result;
});
})
.push(function (result) {
console.log(result);
var element_list = [],
i;
console.log(result);
for (i = 0; i < result.data.total_rows; i += 1) {
element_list.push(
domsugar('br'),
domsugar('div', [
domsugar('p', {text: result.data.rows[i].value.title}),
domsugar('p', {text: result.data.rows[i].value.modification_date}),
domsugar('p', {text: result.data.rows[i].value.follow_up_title}),
domsugar('p', {text: result.data.rows[i].value.countFolder}),
])
);
}
// XXX group by discussion post by parent_uid
console.log(element_list);
return domsugar(gadget.element, element_list);
});
var gadget = this,
product_uid_dict = {},
meta_product_uid_list = [],
product_list = [];
// First, get the list of products
return searchAllProject(gadget, product_uid_dict,
meta_product_uid_list, product_list)
.push(function () {
return RSVP.hash({
status_dom: buildSoftwareStatusDom(gadget, product_list,
product_uid_dict),
documentation_dom: buildDocumentationDom(gadget,
meta_product_uid_list)
});
})
.push(function (result_dict) {
domsugar(gadget.element, [
domsugar('img', {src: 'NXD-Official.Logo.svg?format=',
alt: 'Nexedi Logo'}),
domsugar('section', {class: 'ui-content-header-plain'}, [
domsugar('h3', [
domsugar('span', {class: 'ui-icon ui-icon-exchange',
text: ' '}),
'Documentation'
])
]),
result_dict.documentation_dom,
domsugar('section', {class: 'ui-content-header-plain'}, [
domsugar('h3', [
domsugar('span', {class: 'ui-icon ui-icon-exchange',
text: ' '}),
'Software Status'
])
]),
result_dict.status_dom
]);
return gadget.updateHeader({
page_title: 'Nexedi Project Quality',
page_icon: 'puzzle-piece'
});
});
})
////////////////////////////////////////////////////////////////////
// Go
////////////////////////////////////////////////////////////////////
.allowPublicAcquisition('updateHeader', function () {
return;
})
.allowPublicAcquisition("jio_allDocs", function (param_list) {
// XXX Convert iso date to a DateTime field
// XXX Paginate message to last message on modification date column
var gadget = this,
options = param_list[0];
return gadget.jio_allDocs(options)
.push(function (result) {
var i, date, len = result.data.total_rows;
for (i = 0; i < len; i += 1) {
if (result.data.rows[i].value.hasOwnProperty("modification_date")) {
date = new Date(result.data.rows[i].value.modification_date);
result.data.rows[i].value.modification_date = {
url_value: {
command: 'index',
options: {
jio_key: result.data.rows[i].id,
page: gadget.state.page
}
},
field_gadget_param: {
allow_empty_time: 0,
ampm_time_style: 0,
css_class: "date_field",
date_only: false,
description: "The Date",
editable: 1,
hidden: 0,
hidden_day_is_last_day: 0,
"default": date.toUTCString(),
key: "modification_date",
required: 0,
timezone_style: 0,
title: "Modification Date",
type: "DateTimeField"
}
};
}
if (result.data.rows[i].value.hasOwnProperty("asStrippedHTML")) {
result.data.rows[i].value.asStrippedHTML = {
url_value: {
command: 'index',
options: {
jio_key: result.data.rows[i].id,
page: gadget.state.page
}
},
field_gadget_param: {
description: "Content",
editable: 0,
hidden: 0,
"default": result.data.rows[i].value.asStrippedHTML,
key: "asStrippedHTML",
required: 0,
title: "Content",
type: "EditorField"
}
};
}
}
return result;
});
})
.setState({
display_step: DISPLAY_READER
})
.declareMethod('render', function (options) {
console.log(options);
return this.changeState({
first_render: true,
page: options.page,
jio_key: options.jio_key,
options: options
/*
display_step: DISPLAY_TREE,
// Only build the bt5 during the first query
extract: 1,
diff_url: options.diff_url,
get_tree_url: options.get_tree_url,
remote_comment: options.remote_comment,
remote_url: options.remote_url,
key: options.key,
default_changelog: options.default_changelog,
default_push: options.default_push,
value: options.value || JSON.stringify({
added: [],
modified: [],
removed: [],
changelog: '',
push: false
}),
editable: (options.editable === undefined) ? true : options.editable
*/
});
})
.onStateChange(function (modification_dict) {
console.log('changestate', modification_dict);
var gadget = this;
// Always refresh the reader
if (gadget.state.display_step === DISPLAY_READER) {
if (gadget.state.jio_key === undefined) {
return renderDiscussionThreadList(
gadget,
modification_dict.hasOwnProperty('display_step') || modification_dict.first_render
);
}
// XXX HACK
if ((gadget.state.jio_key.match(/\//g) || []).length === 1) {
return renderDiscussionThread(
gadget,
modification_dict.hasOwnProperty('display_step') || modification_dict.first_render,
gadget.state.jio_key
);
}
return renderDiscussionPost(
gadget,
modification_dict.hasOwnProperty('display_step') || modification_dict.first_render,
gadget.state.jio_key
);
}
/*
if (gadget.state.display_step === DISPLAY_TREE) {
console.log(modification_dict);
if (modification_dict.hasOwnProperty('display_step')) {
return renderTreeView(gadget,
modification_dict.hasOwnProperty('extract'));
}
if (modification_dict.hasOwnProperty('expand_tree')) {
return expandTreeView(gadget);
}
}
if (modification_dict.display_step === DISPLAY_DIFF) {
return renderDiffView(gadget);
}
if (modification_dict.display_step === DISPLAY_CHANGELOG) {
return renderChangelogView(gadget);
}
*/
if (modification_dict.hasOwnProperty('display_step')) {
throw new Error('Unhandled display step: ' + gadget.state.display_step);
}
});
}(window, rJS, RSVP, domsugar, SimpleQuery, ComplexQuery, Query));
\ No newline at end of file
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="Web Script" module="erp5.portal_type"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>_Access_contents_information_Permission</string> </key>
<value>
<tuple>
<string>Anonymous</string>
<string>Assignee</string>
<string>Assignor</string>
<string>Associate</string>
<string>Auditor</string>
<string>Manager</string>
</tuple>
</value>
</item>
<item>
<key> <string>_Add_portal_content_Permission</string> </key>
<value>
<tuple>
<string>Assignee</string>
<string>Assignor</string>
<string>Manager</string>
</tuple>
</value>
</item>
<item>
<key> <string>_Change_local_roles_Permission</string> </key>
<value>
<tuple>
<string>Assignor</string>
<string>Manager</string>
</tuple>
</value>
</item>
<item>
<key> <string>_Modify_portal_content_Permission</string> </key>
<value>
<tuple>
<string>Assignee</string>
<string>Assignor</string>
<string>Manager</string>
</tuple>
</value>
</item>
<item>
<key> <string>_View_Permission</string> </key>
<value>
<tuple>
<string>Anonymous</string>
<string>Assignee</string>
<string>Assignor</string>
<string>Associate</string>
<string>Auditor</string>
<string>Manager</string>
</tuple>
</value>
</item>
<item>
<key> <string>content_md5</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>content_type</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>default_reference</string> </key>
<value> <string>gadget_erp5_page_nx_forum.js</string> </value>
</item>
<item>
<key> <string>description</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>romain_forum_js</string> </value>
</item>
<item>
<key> <string>language</string> </key>
<value> <string>en</string> </value>
</item>
<item>
<key> <string>portal_type</string> </key>
<value> <string>Web Script</string> </value>
</item>
<item>
<key> <string>short_title</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string>Forum Reader JS</string> </value>
</item>
<item>
<key> <string>version</string> </key>
<value> <string>001</string> </value>
</item>
<item>
<key> <string>workflow_history</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent>
</value>
</item>
</dictionary>
</pickle>
</record>
<record id="2" aka="AAAAAAAAAAI=">
<pickle>
<global name="PersistentMapping" module="Persistence.mapping"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>data</string> </key>
<value>
<dictionary>
<item>
<key> <string>document_publication_workflow</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAM=</string> </persistent>
</value>
</item>
<item>
<key> <string>edit_workflow</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAQ=</string> </persistent>
</value>
</item>
<item>
<key> <string>processing_status_workflow</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAU=</string> </persistent>
</value>
</item>
</dictionary>
</value>
</item>
</dictionary>
</pickle>
</record>
<record id="3" aka="AAAAAAAAAAM=">
<pickle>
<global name="WorkflowHistoryList" module="Products.ERP5Type.Workflow"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>_log</string> </key>
<value>
<list>
<dictionary>
<item>
<key> <string>action</string> </key>
<value> <string>publish_alive</string> </value>
</item>
<item>
<key> <string>actor</string> </key>
<value> <string>zope</string> </value>
</item>
<item>
<key> <string>comment</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>error_message</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>time</string> </key>
<value>
<object>
<klass>
<global name="DateTime" module="DateTime.DateTime"/>
</klass>
<tuple>
<none/>
</tuple>
<state>
<tuple>
<float>1609424819.36</float>
<string>UTC</string>
</tuple>
</state>
</object>
</value>
</item>
<item>
<key> <string>validation_state</string> </key>
<value> <string>published_alive</string> </value>
</item>
</dictionary>
</list>
</value>
</item>
</dictionary>
</pickle>
</record>
<record id="4" aka="AAAAAAAAAAQ=">
<pickle>
<global name="WorkflowHistoryList" module="Products.ERP5Type.Workflow"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>_log</string> </key>
<value>
<list>
<dictionary>
<item>
<key> <string>action</string> </key>
<value> <string>edit</string> </value>
</item>
<item>
<key> <string>actor</string> </key>
<value> <string>zope</string> </value>
</item>
<item>
<key> <string>comment</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>error_message</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>serial</string> </key>
<value> <string>989.8969.7970.21555</string> </value>
</item>
<item>
<key> <string>state</string> </key>
<value> <string>current</string> </value>
</item>
<item>
<key> <string>time</string> </key>
<value>
<object>
<klass>
<global name="DateTime" module="DateTime.DateTime"/>
</klass>
<tuple>
<none/>
</tuple>
<state>
<tuple>
<float>1609866799.64</float>
<string>UTC</string>
</tuple>
</state>
</object>
</value>
</item>
</dictionary>
</list>
</value>
</item>
</dictionary>
</pickle>
</record>
<record id="5" aka="AAAAAAAAAAU=">
<pickle>
<global name="WorkflowHistoryList" module="Products.ERP5Type.Workflow"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>_log</string> </key>
<value>
<list>
<dictionary>
<item>
<key> <string>action</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>actor</string> </key>
<value> <string>zope</string> </value>
</item>
<item>
<key> <string>comment</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>error_message</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>external_processing_state</string> </key>
<value> <string>empty</string> </value>
</item>
<item>
<key> <string>serial</string> </key>
<value> <string>0.0.0.0</string> </value>
</item>
<item>
<key> <string>time</string> </key>
<value>
<object>
<klass>
<global name="DateTime" module="DateTime.DateTime"/>
</klass>
<tuple>
<none/>
</tuple>
<state>
<tuple>
<float>1609424753.54</float>
<string>UTC</string>
</tuple>
</state>
</object>
</value>
</item>
</dictionary>
</list>
</value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
image_module/romain_wallpaper_*
\ No newline at end of file
image_module/romain_wallpaper_*
web_page_module/romain_forum_*
\ No newline at end of file
image_module/romain_wallpaper_*
\ No newline at end of file
image_module/romain_wallpaper_*
web_page_module/romain_forum_*
\ No newline at end of file
image_module/romain_wallpaper_*
notebook_module/romain_notebook_*
\ No newline at end of file
notebook_module/romain_notebook_*
web_page_module/romain_forum_*
\ No newline at end of file
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment