Campos condicionais do Sharepoint no Edit.aspx

Gostaria de exibir certos campos de metadados no formulário de edição com base no valor de um campo.

Exemplo: os usuários fazem upload de um documento para o Doclib para ser aprovado pelo gerente. Eles têm permissão para alterar o nome dos metadados, nº do caso, local até que o item seja aprovado pelo gerente. Depois que o item for aprovado, gostaria de definir o Nome e o Número do caso como somente leitura.

Qual é a melhor maneira de atender a esse requisito?

Se aprovado = sim, defina Nome e Caso Não = Somente leitura Outros não fazem nada.

Eu tentei esse método por cerca de 5 horas. Eu acreditava que isso pode ser diferente para ModerationStatus. Pode exigir algo especial

print("<xsl:choose>
<xsl:when test="@_ModerationStatus != '0;#approved'">               
<SharePoint:FormField runat="server" id="ff12{$Pos}" ControlMode="Edit" FieldName="Test_x0020_Session" __designer:bind="{ddwrt:DataBind('u',concat('ff12',$Pos),'Value','ValueChanged','ID',ddwrt:EscapeDelims(string(@ID)),'@Test_x0020_Session')}"/>
<SharePoint:FieldDescription runat="server" id="ff12description{$Pos}" FieldName="Test_x0020_Session" ControlMode="Edit"/>                      
</xsl:when>
<xsl:otherwise>
     <xsl:value-of select="@Test_x0020_Session"></xsl:value-of>
</xsl:otherwise>

");

Posso fazê-lo funcionar com os outros campos, mas não com o ModerationStatus. Também tentei alterá-lo para! = '0' e! = 'Approved' e '0; #Approved'. Existe algo que estou fazendo de errado?

Parece que está preso em 0; #Approved