Campos condicionales de Sharepoint en Edit.aspx

Me gustaría mostrar ciertos campos de metadatos en el formulario de edición en función del valor de un campo.

Ejemplo: los usuarios cargan un documento en Doclib para que lo apruebe su administrador. Se les permite cambiar el nombre de los metadatos, el caso, la ubicación hasta que el gerente apruebe el artículo. Una vez que se aprueba el artículo, me gustaría establecer el Nombre y el Número de caso para que solo se lean.

¿Cuál es la mejor manera de cumplir con este requisito?

Si se aprueba = sí, establezca Nombre y Caso No = Solo lectura. De lo contrario, no haga nada.

He probado este método durante aproximadamente 5 horas. Creo que esto puede ser diferente para ModerationStatus. Podría requerir 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>

");

Puedo hacer que funcione con los otros campos pero no con ModerationStatus. También he intentado cambiarlo a! = '0' y! = 'Aprobado' y '0; #Approved'. ¿Hay algo que estoy haciendo mal?

Parece que está atascado en 0; # aprobado