Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
S
supplier
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
王宇航
supplier
Commits
298d6949
Commit
298d6949
authored
Jul 23, 2021
by
jason
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
菜品组列表
parent
d58cbe4d
Show whitespace changes
Inline
Side-by-side
Showing
14 changed files
with
75 additions
and
202 deletions
+75
-202
component-supply-chain/src/main/java/com/gingersoft/supply_chain/mvp/bean/DishesBean.java
+0
-84
component-supply-chain/src/main/java/com/gingersoft/supply_chain/mvp/bean/DishesResultBean.java
+4
-6
component-supply-chain/src/main/java/com/gingersoft/supply_chain/mvp/presenter/DishesPresenter.java
+2
-62
component-supply-chain/src/main/java/com/gingersoft/supply_chain/mvp/ui/adapter/dishes/DishNode.java
+0
-9
component-supply-chain/src/main/java/com/gingersoft/supply_chain/mvp/ui/adapter/dishes/DishProvider.java
+8
-7
component-supply-chain/src/main/java/com/gingersoft/supply_chain/mvp/ui/adapter/dishes/DishesGroupNode.java
+9
-13
component-supply-chain/src/main/java/com/gingersoft/supply_chain/mvp/ui/adapter/dishes/DishesGroupProvider.java
+19
-7
component-supply-chain/src/main/java/com/gingersoft/supply_chain/mvp/ui/fragment/DishesFragment.java
+2
-2
component-supply-chain/src/main/res/drawable-xxhdpi/ic_dishes_down.png
+0
-0
component-supply-chain/src/main/res/drawable-xxhdpi/ic_dishes_up.png
+0
-0
component-supply-chain/src/main/res/layout/fragment_dishes.xml
+1
-1
component-supply-chain/src/main/res/layout/item_dish_group.xml
+23
-9
component-supply-chain/src/main/res/layout/item_dishes.xml
+5
-2
component-supply-chain/src/main/res/values/colors.xml
+2
-0
No files found.
component-supply-chain/src/main/java/com/gingersoft/supply_chain/mvp/bean/DishesBean.java
deleted
100644 → 0
View file @
d58cbe4d
package
com
.
gingersoft
.
supply_chain
.
mvp
.
bean
;
import
lombok.Data
;
@Data
public
class
DishesBean
implements
Comparable
<
DishesBean
>
{
private
int
id
;
private
int
parentId
;
private
int
restaurantId
;
private
boolean
isParent
;
private
int
seqNo
;
private
String
foodName
;
@Override
public
int
compareTo
(
DishesBean
dishesBean
)
{
return
this
.
id
-
dishesBean
.
id
;
}
// private boolean autoMod;
// private int lunchboxPrice;
// private boolean serviceCharge;
// private int invisible;
// private int riceponInvisible;
// private int cost;
// private String startDate;
// private String endDate;
// private int totalSold;
// private int isSold;
// private String createBy;
// private String createTime;
// private String updateBy;
// private String updateTime;
// private int periodId;
// private String posFId;
// private int ablediscount;
// private int takeaway;
// private int limitAmount;
// private int limitType;
// private String foodSummary;
// private String foodName1;
// private String foodName2;
// private int printTo;
// private int printToBill;
// private int conditions;
// private int isRt;
// private int deletes;
// private String periodName1;
// private String startDateStr;
// private String endDateStr;
// private double price;
// private int marketPrice;
// private int blueEdit;
// private int cartEdit;
// private int autoMerge;
// private String foodDesc;
// private String imageUrl;
// private int colorId;
// private int deptId;
// private int approve;
// private int printFont;
// private int advPrice;
// private int pointsAdd;
// private int pointsRatio;
// private int pointsRedeem;
// private int ktPrintMainItem;
// private int ktShowPrice;
// private int toPax;
// private int foodType;
// private int majorMainId;
// private int isTimingFood;
// private int minLongTime;
// private int unitTime;
// private int unitPrice;
// private int freeLongTime;
// private String fId;
// private String plu;
// private String printseting;
// private int isPrintQueueCode;
// private int queueHeadId;
// private String imgUrlSmall;
// private String freePeriodBegin;
// private int agreementType;
}
component-supply-chain/src/main/java/com/gingersoft/supply_chain/mvp/bean/DishesResultBean.java
View file @
298d6949
package
com
.
gingersoft
.
supply_chain
.
mvp
.
bean
;
import
com.gingersoft.supply_chain.mvp.ui.adapter.dishes.DishesGroupNode
;
import
java.util.List
;
import
lombok.Data
;
...
...
@@ -10,11 +12,7 @@ public class DishesResultBean {
private
boolean
success
;
private
long
sysTime
;
private
String
errMsg
;
private
DataBean
data
;
private
List
<
DishesGroupNode
>
data
;
@Data
public
static
class
DataBean
{
private
int
count
;
private
List
<
DishesBean
>
list
;
}
}
component-supply-chain/src/main/java/com/gingersoft/supply_chain/mvp/presenter/DishesPresenter.java
View file @
298d6949
...
...
@@ -2,22 +2,17 @@ package com.gingersoft.supply_chain.mvp.presenter;
import
android.app.Application
;
import
com.chad.library.adapter.base.entity.node.BaseNode
;
import
com.gingersoft.gsa.cloud.common.constans.AppConstant
;
import
com.gingersoft.gsa.cloud.common.utils.other.TextUtil
;
import
com.gingersoft.supply_chain.mvp.bean.DishesBean
;
import
com.gingersoft.supply_chain.mvp.bean.DishesResultBean
;
import
com.gingersoft.supply_chain.mvp.contract.DishesContract
;
import
com.gingersoft.supply_chain.mvp.ui.adapter.dishes.DishNode
;
import
com.gingersoft.supply_chain.mvp.ui.adapter.dishes.DishesGroupNode
;
import
com.jess.arms.di.scope.FragmentScope
;
import
com.jess.arms.http.imageloader.ImageLoader
;
import
com.jess.arms.integration.AppManager
;
import
com.jess.arms.mvp.BasePresenter
;
import
com.jess.arms.utils.LogUtils
;
import
com.jess.arms.utils.RxLifecycleUtils
;
import
java.util.ArrayList
;
import
java.util.HashMap
;
import
java.util.List
;
import
java.util.Map
;
...
...
@@ -63,7 +58,6 @@ public class DishesPresenter extends BasePresenter<DishesContract.Model, DishesC
public
void
getDishesData
()
{
Map
<
String
,
Object
>
map
=
new
HashMap
<>(
2
);
// map.put("","0");
AppConstant
.
addBrandId
(
map
);
AppConstant
.
addRestaurantId
(
map
);
mModel
.
getDishesData
(
map
)
//發送請求
...
...
@@ -78,62 +72,8 @@ public class DishesPresenter extends BasePresenter<DishesContract.Model, DishesC
@Override
public
void
onNext
(
DishesResultBean
orderCategoryBean
)
{
//數據處理
if
(
orderCategoryBean
.
isSuccess
())
{
DishesResultBean
.
DataBean
data
=
orderCategoryBean
.
getData
();
if
(
data
!=
null
)
{
//將分類食品的list容量設置為一級分類的數量,這樣就不用擔心之後加載不同position的分類數據時,計算位置了
LogUtils
.
warnInfo
(
" zjs ="
+
data
.
getCount
());
List
<
BaseNode
>
myData
=
new
ArrayList
<>();
List
<
DishesBean
>
list
=
data
.
getList
();
List
<
DishesBean
>
plist
=
new
ArrayList
<>();
List
<
DishesBean
>
clist
=
new
ArrayList
<>();
List
<
DishesGroupNode
>
pNodes
=
new
ArrayList
<>();
List
<
DishNode
>
cNodes
=
new
ArrayList
<>();
// Collections.sort(list);
long
start
=
System
.
currentTimeMillis
();
LogUtils
.
warnInfo
(
" zjs ="
+
list
.
size
()
+
" start"
+
start
);
for
(
int
i
=
0
;
i
<
list
.
size
();
i
++)
{
DishesBean
dishesBean
=
list
.
get
(
i
);
if
(
dishesBean
.
isParent
())
{
clist
.
add
(
dishesBean
);
//子菜单
// DishNode cNode=new DishNode(dishesBean);
// cNodes.add(cNode);
}
else
{
plist
.
add
(
dishesBean
);
//父菜单
DishesGroupNode
groupNode
=
new
DishesGroupNode
(
dishesBean
);
pNodes
.
add
(
groupNode
);
myData
.
add
(
groupNode
);
}
LogUtils
.
warnInfo
(
" zjs ="
+
list
.
get
(
i
).
toString
());
}
int
len
=
clist
.
size
();
for
(
int
i
=
0
;
i
<
pNodes
.
size
();
i
++)
{
DishesGroupNode
groupNode
=
pNodes
.
get
(
i
);
List
<
DishNode
>
subNode
=
new
ArrayList
<>();
// List<BaseNode> bNodeList= new ArrayList<>();
for
(
int
j
=
0
;
j
<
len
;
j
++)
{
DishesBean
dishesBean
=
clist
.
get
(
i
);
if
(
groupNode
.
getId
()
==
dishesBean
.
getParentId
())
{
DishNode
cNode
=
new
DishNode
(
dishesBean
);
subNode
.
add
(
cNode
);
groupNode
.
addChildNode
(
cNode
);
LogUtils
.
warnInfo
(
" zjs"
,
" groupNode 组"
+
groupNode
.
getFoodName
()
+
" 彩民"
+
cNode
.
getFoodName
());
}
}
LogUtils
.
warnInfo
(
" zjs"
,
" groupNode "
+
groupNode
.
getFoodName
()
+
" 数量"
+
subNode
.
size
());
groupNode
.
setDishNodes
(
subNode
);
}
mRootView
.
loadDishGroupInfo
(
pNodes
);
LogUtils
.
warnInfo
(
" zjs end="
+(
System
.
currentTimeMillis
()-
start
));
}
//第一次加載初始化數量
// initCategoryGoodsSize(data);
// mRootView.initCategoryInfo(data);
List
<
DishesGroupNode
>
data
=
orderCategoryBean
.
getData
();
mRootView
.
loadDishGroupInfo
(
data
);
}
else
if
(
TextUtil
.
isNotEmptyOrNullOrUndefined
(
orderCategoryBean
.
getErrMsg
()))
{
mRootView
.
showMessage
(
orderCategoryBean
.
getErrMsg
());
}
else
{
...
...
component-supply-chain/src/main/java/com/gingersoft/supply_chain/mvp/ui/adapter/dishes/DishNode.java
View file @
298d6949
...
...
@@ -4,7 +4,6 @@ import androidx.annotation.Nullable;
import
com.chad.library.adapter.base.entity.node.BaseExpandNode
;
import
com.chad.library.adapter.base.entity.node.BaseNode
;
import
com.gingersoft.supply_chain.mvp.bean.DishesBean
;
import
java.util.ArrayList
;
import
java.util.List
;
...
...
@@ -19,14 +18,6 @@ public class DishNode extends BaseExpandNode {
private
List
<
BaseNode
>
childNode
;
public
DishNode
(
DishesBean
dishesBean
)
{
this
.
id
=
dishesBean
.
getId
();
this
.
parentId
=
dishesBean
.
getParentId
();
this
.
restaurantId
=
dishesBean
.
getRestaurantId
();
this
.
isParent
=
dishesBean
.
isParent
();
this
.
seqNo
=
dishesBean
.
getSeqNo
();
this
.
foodName
=
dishesBean
.
getFoodName
();
}
public
void
addChildNode
(
BaseNode
baseNode
)
{
if
(
baseNode
==
null
)
{
return
;
...
...
component-supply-chain/src/main/java/com/gingersoft/supply_chain/mvp/ui/adapter/dishes/DishProvider.java
View file @
298d6949
...
...
@@ -23,13 +23,14 @@ public class DishProvider extends BaseNodeProvider {
@Override
public
void
convert
(
@NotNull
BaseViewHolder
helper
,
@NotNull
BaseNode
data
)
{
DishNode
entity
=
(
DishNode
)
data
;
helper
.
setText
(
R
.
id
.
tv_dish_title
,
entity
.
getTitle
());
if
(
entity
.
isExpanded
())
{
helper
.
setImageResource
(
R
.
id
.
iv_dishes_group_icon
,
R
.
mipmap
.
keyboard_delete_img
);
}
else
{
helper
.
setImageResource
(
R
.
id
.
iv_dishes_group_icon
,
R
.
mipmap
.
keyboard_back_img
);
}
helper
.
setText
(
R
.
id
.
tv_dish_title
,
entity
.
getFoodName
());
// LogUtil.e("zjs"," entity.isExpanded()="+entity.isExpanded());
// if (entity.isExpanded()) {
// helper.setImageResource(R.id.iv_dishes_group_icon, R.drawable.ic_dishes_up);
// } else {
// helper.setImageResource(R.id.iv_dishes_group_icon, R.drawable.ic_dishes_down);
// }
}
@Override
...
...
component-supply-chain/src/main/java/com/gingersoft/supply_chain/mvp/ui/adapter/dishes/DishesGroupNode.java
View file @
298d6949
...
...
@@ -2,7 +2,6 @@ package com.gingersoft.supply_chain.mvp.ui.adapter.dishes;
import
com.chad.library.adapter.base.entity.node.BaseExpandNode
;
import
com.chad.library.adapter.base.entity.node.BaseNode
;
import
com.gingersoft.supply_chain.mvp.bean.DishesBean
;
import
org.jetbrains.annotations.Nullable
;
...
...
@@ -17,18 +16,9 @@ public class DishesGroupNode extends BaseExpandNode{
private
int
seqNo
;
private
String
foodName
;
private
List
<
DishNode
>
dishNodes
;
private
List
<
DishNode
>
child
;
private
List
<
BaseNode
>
childNode
;
public
DishesGroupNode
(
DishesBean
dishesBean
)
{
this
.
id
=
dishesBean
.
getId
();
this
.
parentId
=
dishesBean
.
getParentId
();
this
.
restaurantId
=
dishesBean
.
getRestaurantId
();
this
.
isParent
=
dishesBean
.
isParent
();
this
.
seqNo
=
dishesBean
.
getSeqNo
();
this
.
foodName
=
dishesBean
.
getFoodName
();
}
public
DishesGroupNode
(
int
id
,
int
parentId
,
int
restaurantId
,
boolean
isParent
,
int
seqNo
,
String
foodName
)
{
this
.
id
=
id
;
this
.
parentId
=
parentId
;
...
...
@@ -40,11 +30,11 @@ public class DishesGroupNode extends BaseExpandNode{
public
List
<
DishNode
>
getDishNodes
()
{
return
dishNodes
;
return
child
;
}
public
void
setDishNodes
(
List
<
DishNode
>
dishNodes
)
{
this
.
dishNodes
=
dishNodes
;
this
.
child
=
dishNodes
;
}
public
int
getId
()
{
...
...
@@ -133,6 +123,12 @@ public class DishesGroupNode extends BaseExpandNode{
@Nullable
@Override
public
List
<
BaseNode
>
getChildNode
()
{
if
(
childNode
==
null
)
{
childNode
=
new
ArrayList
<>();
}
if
(
child
!=
null
)
{
childNode
.
addAll
(
child
);
}
return
childNode
;
}
...
...
component-supply-chain/src/main/java/com/gingersoft/supply_chain/mvp/ui/adapter/dishes/DishesGroupProvider.java
View file @
298d6949
package
com
.
gingersoft
.
supply_chain
.
mvp
.
ui
.
adapter
.
dishes
;
import
android.graphics.Typeface
;
import
android.view.View
;
import
android.view.animation.DecelerateInterpolator
;
import
android.widget.ImageView
;
import
android.widget.TextView
;
import
androidx.core.view.ViewCompat
;
import
com.chad.library.adapter.base.entity.node.BaseNode
;
import
com.chad.library.adapter.base.provider.BaseNodeProvider
;
import
com.chad.library.adapter.base.viewholder.BaseViewHolder
;
import
com.gingersoft.gsa.cloud.common.utils.CollectionUtils
;
import
com.gingersoft.supply_chain.R
;
import
org.jetbrains.annotations.NotNull
;
...
...
@@ -29,8 +32,8 @@ public class DishesGroupProvider extends BaseNodeProvider {
@Override
public
void
convert
(
@NotNull
BaseViewHolder
baseViewHolder
,
BaseNode
baseNode
)
{
DishesGroupNode
entity
=
(
DishesGroupNode
)
baseNode
;
baseViewHolder
.
setText
(
R
.
id
.
tv_dishes_group_title
,
entity
.
get
Titl
e
());
baseViewHolder
.
setImageResource
(
R
.
id
.
iv_dishes_group_icon
,
R
.
mipmap
.
ic_launcher
);
baseViewHolder
.
setText
(
R
.
id
.
tv_dishes_group_title
,
entity
.
get
FoodNam
e
());
baseViewHolder
.
setImageResource
(
R
.
id
.
iv_dishes_group_icon
,
R
.
drawable
.
ic_dishes_down
);
setArrowSpin
(
baseViewHolder
,
baseNode
,
false
);
...
...
@@ -51,26 +54,35 @@ public class DishesGroupProvider extends BaseNodeProvider {
DishesGroupNode
entity
=
(
DishesGroupNode
)
data
;
ImageView
imageView
=
helper
.
getView
(
R
.
id
.
iv_dishes_group_icon
);
TextView
title
=
helper
.
getView
(
R
.
id
.
tv_dishes_group_title
);
List
<
DishNode
>
child
=
entity
.
getDishNodes
();
if
(
CollectionUtils
.
isNotNullOrEmpty
(
child
))
{
imageView
.
setVisibility
(
View
.
VISIBLE
);
if
(
entity
.
isExpanded
())
{
title
.
setTypeface
(
Typeface
.
SANS_SERIF
,
Typeface
.
BOLD
);
if
(
isAnimate
)
{
ViewCompat
.
animate
(
imageView
).
setDuration
(
200
)
.
setInterpolator
(
new
DecelerateInterpolator
())
.
rotation
(
0
f
)
.
rotation
(
18
0
f
)
.
start
();
}
else
{
imageView
.
setRotation
(
0
f
);
imageView
.
setRotation
(
18
0
f
);
}
}
else
{
title
.
setTypeface
(
Typeface
.
SANS_SERIF
,
Typeface
.
NORMAL
);
if
(
isAnimate
)
{
ViewCompat
.
animate
(
imageView
).
setDuration
(
200
)
.
setInterpolator
(
new
DecelerateInterpolator
())
.
rotation
(
9
0
f
)
.
rotation
(
0
f
)
.
start
();
}
else
{
imageView
.
setRotation
(
90
f
);
imageView
.
setRotation
(
0
f
);
}
}
}
else
{
imageView
.
setVisibility
(
View
.
INVISIBLE
);
}
}
@Override
...
...
component-supply-chain/src/main/java/com/gingersoft/supply_chain/mvp/ui/fragment/DishesFragment.java
View file @
298d6949
...
...
@@ -76,8 +76,8 @@ public class DishesFragment extends BaseSupplyChainFragment<DishesPresenter> imp
private
void
initDishes
(
List
<
DishesGroupNode
>
dishesGroupNodes
){
DishesTreeAdapter
dishesTreeAdapter
=
new
DishesTreeAdapter
();
dishesTreeAdapter
.
setList
(
dishesGroupNodes
);
rvDishes
.
setLayoutManager
(
new
CenterLayoutManager
(
requireContext
(),
LinearLayoutManager
.
HORIZONT
AL
,
false
));
rvDishes
.
setAdapter
(
dishesTreeAdapter
);
rvDishes
Group
.
setLayoutManager
(
new
LinearLayoutManager
(
requireContext
(),
LinearLayoutManager
.
VERTIC
AL
,
false
));
rvDishes
Group
.
setAdapter
(
dishesTreeAdapter
);
}
private
List
<
BaseNode
>
getEntity
()
{
...
...
component-supply-chain/src/main/res/drawable-xxhdpi/ic_dishes_down.png
0 → 100644
View file @
298d6949
2.56 KB
component-supply-chain/src/main/res/drawable-xxhdpi/ic_dishes_up.png
0 → 100644
View file @
298d6949
2.37 KB
component-supply-chain/src/main/res/layout/fragment_dishes.xml
View file @
298d6949
...
...
@@ -34,7 +34,7 @@
<com.scwang.smartrefresh.layout.SmartRefreshLayout
android:id=
"@+id/refreshLayout"
android:layout_width=
"0dp"
android:layout_weight=
"
4
"
android:layout_weight=
"
2
"
android:layout_height=
"match_parent"
>
<com.scwang.smartrefresh.layout.header.ClassicsHeader
...
...
component-supply-chain/src/main/res/layout/item_dish_group.xml
View file @
298d6949
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android=
"http://schemas.android.com/apk/res/android"
<androidx.constraintlayout.widget.ConstraintLayout
xmlns:android=
"http://schemas.android.com/apk/res/android"
xmlns:app=
"http://schemas.android.com/apk/res-auto"
xmlns:tools=
"http://schemas.android.com/tools"
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
android:animateLayoutChanges=
"true"
android:background=
"@color/supply_chain_bg_color"
android:orientation=
"vertical"
>
android:background=
"@color/dishes_group_bg"
android:orientation=
"horizontal"
>
<TextView
android:id=
"@+id/tv_dishes_group_title"
android:paddingLeft=
"@dimen/dp_10"
android:paddingTop=
"@dimen/dp_6"
android:paddingBottom=
"@dimen/dp_6"
android:paddingRight=
"@dimen/dp_10"
app:layout_constraintLeft_toLeftOf=
"parent"
app:layout_constraintTop_toTopOf=
"parent"
tools:text=
"菜品明"
android:textColor=
"@color/white"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
/>
<ImageView
android:id=
"@+id/iv_dishes_group_icon"
android:layout_width=
"wrap_content"
android:visibility=
"gone"
android:layout_height=
"wrap_content"
/>
android:layout_height=
"@dimen/dp_18"
android:layout_width=
"@dimen/dp_18"
android:layout_marginRight=
"@dimen/dp_6"
app:layout_constraintTop_toTopOf=
"@+id/tv_dishes_group_title"
app:layout_constraintBottom_toBottomOf=
"@+id/tv_dishes_group_title"
app:layout_constraintRight_toRightOf=
"parent"
android:layout_gravity=
"center_vertical"
android:src=
"@drawable/ic_dishes_down"
/>
</LinearLayout>
\ No newline at end of file
</androidx.constraintlayout.widget.ConstraintLayout>
\ No newline at end of file
component-supply-chain/src/main/res/layout/item_dishes.xml
View file @
298d6949
...
...
@@ -2,7 +2,7 @@
<LinearLayout
xmlns:android=
"http://schemas.android.com/apk/res/android"
xmlns:app=
"http://schemas.android.com/apk/res-auto"
xmlns:tools=
"http://schemas.android.com/tools"
android:layout_width=
"
match_par
ent"
android:layout_width=
"
wrap_cont
ent"
android:layout_height=
"wrap_content"
android:animateLayoutChanges=
"true"
android:background=
"@color/supply_chain_bg_color"
...
...
@@ -10,7 +10,9 @@
<TextView
android:id=
"@+id/tv_dish_title"
android:layout_width=
"match_parent"
android:layout_marginLeft=
"@dimen/dp_16"
android:padding=
"@dimen/dp_4"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
/>
</LinearLayout>
\ No newline at end of file
component-supply-chain/src/main/res/values/colors.xml
View file @
298d6949
...
...
@@ -6,4 +6,5 @@
<color
name=
"order_category_name_unselect_color"
>
@color/color_3c
</color>
<color
name=
"order_category_name_select_color"
>
@color/theme_color
</color>
<color
name=
"click_upload_text_color"
>
#1196DB
</color>
<color
name=
"dishes_group_bg"
>
#00B7F8
</color>
</resources>
\ No newline at end of file
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment